Worldline Contract - Global Search API
Contract Global Search API Controller
Contract Global Search API Controller
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/wordline-contract-global-search-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:
description: 'The current set of APIs will be available in Q2 2026 on Worldline Global Issuing Platforms.
Additional APIs are under construction and planned to be available in 2026.'
version: 2.41.1
title: Worldline Card Issuing Contract - Global Search API
contact: {}
servers:
- url: https://sbx-wlip.api1-eu2.psapigateway.preprod.giservices.io/card-issuing/api/v2
tags:
- name: Contract - Global Search
description: Contract Global Search API Controller
paths:
/search-contracts:
post:
tags:
- Contract - Global Search
summary: Global Search for Contracts
operationId: globalSearchContract
description: "The API provides possibility to retrieve a list of consumer contracts, based on certain criteria. \n\nOne of the following criteria for searching must be provided:\n- either account's criteria\n- or customer's criteria\n- or card's criteria\n\nFor searching with account's criteria, only one of the following data must be provided :\n•\tIBAN \n•\tor account identifier : either account reference or issuer account external reference\n•\tor account membership number 1\n•\tor account membership number 2 \n\nFor searching with customer's criteria, only one of the following data must be provided :\n•\tPersonal Data with last name and first name (and optionally with birth date, postal address : postal code, street name and/or building number, phonetic criteria)\n•\tor customer identifier : either customer reference or issuer customer external reference\n•\tor partner external reference\n\nFor searching with card's criteria, only one of the following data must be provided :\n•\tPAN\n•\tor card contract identifier : either card contract reference or issuer card contract external reference\n•\tor card identifier : either card reference or issuer card external reference\n\nIf requested, the API input parameters allows also to:\n* search from an issuer and optionally with sub-issuers OR search from a list of issuers (by default, the search is performed on all issuers allowed for the user depending on its rights)\n* limit the list of returned cards per card contract to either the latest card only or all previous cards\n* return the direct parent account in the hierarchy of the account and/or the list of child accounts of the account matching the criteria if the research is based on account's criteria\n* request to enrich the response with additional data relative to the accounts, the card contracts, the cards and the customers by using embedded fields\n\nThe API response contains all matched contracts and for each returned contract some information is provided such as\n- contract identifier with the contract reference, the issuer external contract reference if originally provided\n- product change information if any, such as its current status, new product, new contract if it exists\n- 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)), accounts and account identifiers, card contracts, cards"
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: page
in: query
description: '0'
required: false
schema:
type: integer
format: int32
default: 0
- name: offset
in: query
description: '10'
required: false
schema:
type: integer
format: int32
default: 10
- 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
- accounts.selectedModels
- cardContractIdentifiers
- cardContracts
- cardContracts.cards
- dataAnalysisFlags
- contractCustomerIdentifiers
- contractCustomers
- addonSubscriptions
- contractCustomers.addresses
- cardContracts.relatedAccounts
- cardContracts.selectedModels
- cardContracts.cardIdentifiers
- cards.statusHistory
- cards.renewedBy
- cards.renewedFor
- cards.replacementBy
- cards.replacementFor
- cards.orderIdentifiers
- cards.orders
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/ApiResponseEntityGlobalSearchContract'
security:
- basic: []
deprecated: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GlobalSearchContractRequest'
required: true
components:
schemas:
CardBlockingInformation:
type: object
required:
- cardBlockingDateTime
properties:
cardBlockingDateTime:
type: string
format: date-time
description: Date and time when the card has been blocked by our system
blockAgent:
type: string
description: Operator who blocked the card (mandatory only if the card is blocked). It corresponds to the name of the user, referenced in our system, mentioned at the card blocking time.
blockingReason:
type: string
description: 'Reason for blocking a card (mandatory only if the card is blocked)
The list of blocking reasons is configurable per issuer (For example, LOST, STOLEN, FRAUDULENT …)'
blockingReasonDetail:
type: string
description: 'Complementary information describing the defined blocking reason
Free text'
lostStolenDate:
type: string
format: date-time
description: 'Date when the card has been lost or stolen
This date is provided in addition to the blocking reason (required only if the card is blocked in a context of loss/theft)'
lossPlace:
type: string
description: 'Place where the card has been lost
Free text'
lossCountry:
type: string
description: 'Country of card loss or steal
Can be required in certain countries (e.g. french issuers with CB)
Free text (not check on the provided value)'
lastUsageDate:
type: string
format: date-time
description: ' Date of last use of the card
Example: for lost or stolen reason'
lastUsagePlace:
type: string
description: 'Last place where the card has been used
Example: for lost or stolen reason'
lossCircumstances:
type: string
description: 'Description of the circumstances of the card loss
Free text'
lossReportedBy:
type: string
description: 'Person who has reported the card loss
Free text'
lossReportedVia:
type: string
description: 'How was reported the loss (channel)
Free text'
fraudCode:
type: string
description: 'Fraud code can be used in the context of dispute management.
Fraud code (free text) is provided in case of Fraud for Fraud declaration to the schemes (VISA, MasterCard).
The value must be a value expected by the schemes.'
contactData:
type: string
description: 'Indicates contact data (usually phone number)
Free text'
pinCompromised:
type: boolean
description: 'Indicates if the PIN is compromised (true) or not (false) only in case of lost or stolen reason. Default value is false '
customerRequestingBlockDate:
type: string
format: date-time
description: 'Date when the customer has declared the blocking request.
For example, the cardholder calls the customer service at 4 pm to declare he lost his card and the card blocking request can only be sent at 5 pm to the system: then the customerRequestingBlockDateTime is 4 pm.'
transferEffectiveDate:
type: string
format: date-time
description: Transfer effective date (either a date prior to the card blocking date time or it is the card blocking date time in our system)
noReplacementReason:
type: string
description: 'The reason why the card is not replaced.
Free text'
comment:
type: string
description: 'Comment associated with the card blocking action
Free text'
cppFlag:
type: boolean
description: DEPRECATED
fraudProcess:
type: string
description: "Fraud process in which the card is blocked. \nPossible values : \n•\tCPP : the card is in CCP list \n•\tTFI : Fraud detected for a single card \n•\tMBA : Fraud detected for several cards (Mass action)"
scheduledCardBlockingDate:
type: string
format: date-time
description: Date when the permanent card blocking is scheduled
scheduledCardBlockingDelay:
type: integer
description: Delay in calendar days used to permanently block the card in the future
scheduledCardBlockingReason:
type: string
description: 'Blocking reason used when the card is blocked in the future
Relevant if a scheduled permanent blocking is requested at the same time as an immediate temporary card blocking.
Permanent blocking reasons used context of loss/theft are not allowed.'
transactionId:
type: string
description: Indicates the transactionId of the suspicious transaction that has triggered the card blocking.
title: CardBlockingInformation
EmailAddress:
type: object
required:
- email
properties:
email:
type: string
description: 'Email address of the Customer (mandatory). The email address should have the following format: aaa@bbb.ccc
aaa, bbb, ccc are character string.'
title: EmailAddress
CardContractModel:
type: object
properties:
reference:
type: string
description: Reference of a card contract model
type:
type: string
description: 'Type of a card contract model
Possible values: CARD_CREATION_MODEL, CARD_AUTONUMBERING_MODEL, TECHNOLOGY_AND_APPLICATION_MODEL, EVENT_FEE_MODEL, CARD_RENEWAL_MODEL, CARD_REPLACEMENT_MODEL, PIN_PRODUCTION_MODEL, DISTRIBUTION_MODEL'
title: CardContractModel
ProductChangeInformation:
type: object
description: Only if a product change is triggered by card replacement. Represents product change information
properties:
targetProductIdentifier:
description: Target product of the product change identified either by the Issuer Product External Reference or the Product Reference.
allOf:
- $ref: '#/components/schemas/ProductIdentifier'
closingReason:
type: string
description: 'Closing reason used at the contract termination.
Free text'
feeReimbursementAtCardContractClosing:
type: boolean
description: Indicates whether the membership & account setup fees shall be reimbursed for the old contract at the contract termination (per card contract)
cardCreationSendingMode:
type: string
description: 'Sending mode used for all physical cards ordered in the contract
Same value as provided in the Product change request'
pinMailerSendingMode:
type: string
description: 'Sending mode used for all PIN mailers created for the contract
Same value as provided in the Product change request'
cardChanges:
type: array
description: 'List of card changes requested during the product change (optional).
Same value as provided in the Product change request '
items:
$ref: '#/components/schemas/CardChange'
productChangeTrigger:
type: string
description: "This field indicates when the product change is triggered once the product change request is received. \nIt depends of the product change configuration.\nPossible values are : \n- IMMEDIATE\n- ON_RENEWAL"
productChangeReference:
type: string
description: External reference of the configured Product Change definition used for the product change.
productChangeStatus:
type: string
description: 'Status of the product change
Possible values are :
- PENDING (for scheduled product change, date not reached)
- PROCESSED (for immediate product change, or scheduled product change when date is reached)
- CANCELLED (When a scheduled product change is cancelled before the scheduled product change date is reached)'
futureChangeDate:
type: string
format: date-time
description: "Future date of the product change. \nCalculated by the system in case of product change on renewal (= anticipated card renewal date (when only one card) or first anticipated card renewal date within the contract when contract has several cards).\nUTC time zone.\nFormat: \"yyyy-MM-dd'T'HH:mm:ssZ\""
productChangeStatusDate:
type: string
format: date-time
description: 'Date the status of the product change was last updated.
UTC time zone.
Format: "yyyy-MM-dd''T''HH:mm:ssZ"'
title: ChangeProductResponse.ProductChangeInformation
HierarchyOutgoingCreditTransferFeature:
type: object
properties:
periodicOct:
type: boolean
description: "This field indicates if the issuer can override the periodic OCT option. \nTo override the option, the reimbursement model attached to the contract must be configured to accept the change of the default choice.\n"
periodicOctType:
type: string
description: "This field indicates the periodic OCT type \nPossibles values:\n- DAILY (OCT can be triggered on a daily basis if account is in credit position)\n- CYCLIC (OCT can be triggered at cycle closure date if account is in credit position).\nIt can be overridden if the reimbursement model accepts the change of the default choice."
enum:
- DAILY
- CYCLIC
periodicMaxThreshold:
description: 'Threshold amount used for generating the periodic OCT. When the account balance is greater than the threshold, the OCT amount will be equal to the (account credit balance - threshold amount). Ex: threshold is 10.000€ and credit balance is : 15.000€: the OCT amount is 5.000€.
The threshold amount can be overridden if the reimbursement model accepts the change of the default threshold.'
allOf:
- $ref: '#/components/schemas/Amount'
octOnContractTerminationAllowed:
type: boolean
description: 'This field indicates the "OCT on contract termination" option
The option can be modified if it is allowed within the reimbursement model to change the default choice.'
octOnAccountTerminationAllowed:
type: boolean
description: 'This field indicates the option to generate an OCT when card account is closed
The option can be modified if it is allowed within the reimbursement model to change the default choice.'
octOnContractSuspensionAllowed:
type: boolean
description: 'This field indicates if an Outgoing Credit Transfer is required or not when the contract is suspended.
The value is initialized from the product and can be overridden if this is allowed by the product (in reimbursement model).'
octOnDemandAllowed:
type: boolean
description: "This field indicates the \"OCT on demand\" option. \nThe option can be modified if it is allowed within the reimbursement model to change the default choice."
octOnDemandLimitType:
type: string
description: 'This field indicates the limit type of the "OCT on demand" option.
Possible values:
- BALANCE (= a customer can only request an OCT in case of account in credit position)
- OTB (open-to-buy) (=a customer can request an OCT from its current Open-to-buy (so from its credit limit allowed by the issuer)
The limit type can be modified if it is allowed within the reimbursement model.'
enum:
- OTB
- BALANCE
octOnContractTerminationType:
type: string
enum:
- CONTRACT_TERMINATION
- ACCOUNT_CLOSING
description: Specify OctFeature (periodicOct, periodicOctType, periodicOctMaxThreshold, etc.)
title: HierarchyOutgoingCreditTransferFeature
AdvertisementFlags:
type: object
properties:
general:
type: boolean
description: 'General advertisement flag. By default, value is false.
If this flag is false, other flags are ignored (email, letter, phone, statement, sms flags).'
email:
type: boolean
description: Indicates if the email advertisement is enabled (true) or not (false). By default, value is false.
letter:
type: boolean
description: Indicates if the letter advertisement is enabled (true) or not (false). By default, value is false.
phone:
type: boolean
description: Indicates if the phone advertisement is enabled (true) or not (false). By default, value is false.
statement:
type: boolean
description: Indicates if the statement advertisement is enabled (true) or not (false). By default, value is false.
sms:
type: boolean
description: Indicates if the sms advertisement is enabled (true) or not (false). By default, value is false.
description: Specify possible channels used to provide advertisements
title: AdvertisementFlags
ForbiddenErrorApiResponse:
type: object
required:
- responseMetadata
properties:
responseMetadata:
allOf:
- $ref: '#/components/schemas/ForbiddenResponseMetadata'
title: ForbiddenErrorApiResponse
NotFoundResponseMetadata:
type: object
required:
- correlationId
- responseDateTime
- statusCode
- statusMessage
properties:
correlationId:
type: string
description: Correlation Identifier
responseDateTime:
type: string
example: format:yyyy-MM-dd'T'HH:mm:ss.SSSZ
description: Timestamp when response date was generated
statusCode:
type: integer
format: int32
example: 404
description: HTTP status code
statusMessage:
type: string
example: Not found
description: Executed REST API status message
title: NotFoundResponseMetadata
CardIdentifier:
type: object
description: Identification of the card either by Issuer card external reference or by card reference
properties:
cardReference:
type: string
description: 'Reference of the card generated by our system, unique per platform.
This reference is calculated sequentially by an internal algorithm on 16 digits (e.g. 2000000000096013).'
issuerCardExternalReference:
type: string
description: 'External reference of the card provided by the issuer or calculated by the system if the external reference generation algorithm is configured for the issuer.
This reference is unique per issuer and may be used to carry out research and find information.'
title: CardIdentifier
ForbiddenResponseMetadata:
type: object
required:
- correlationId
- responseDateTime
- statusCode
- statusMessage
properties:
correlationId:
type: string
description: Correlation Identifier
responseDateTime:
type: string
example: format:yyyy-MM-dd'T'HH:mm:ss.SSSZ
description: Timestamp when response date was generated
statusCode:
type: integer
format: int32
example: 403
description: HTTP status code
statusMessage:
type: string
example: Forbidden
description: Executed REST API status message
title: ForbiddenResponseMetadata
InternalServerErrorErrorApiResponse:
type: object
required:
- responseMetadata
properties:
responseMetadata:
allOf:
- $ref: '#/components/schemas/InternalServerErrorResponseMetadata'
title: InternalServerErrorErrorApiResponse
AccountModel:
type: object
properties:
type:
type: string
description: "Type of an account model\nPossible values:\n•\teventFeeModel\n•\ttransactionFeeModel\n•\tmarkupFeeModel\n•\trestrictionModel\n•\tdebitInterestModel\n•\tinterestModel\n•\tdirectDebitAmountModel\n•\taccountAmountDueModel \n•\tstatementModel"
reference:
type: string
description: Reference to the particular model that has been selected in selectedModels
originalModelReference:
type: string
description: DEPRECATED
title: AccountModel
UnauthorizedResponseMetadata:
type: object
required:
- correlationId
- responseDateTime
- statusCode
- statusMessage
properties:
correlationId:
type: string
description: Correlation Identifier
responseDateTime:
type: string
example: format:yyyy-MM-dd'T'HH:mm:ss.SSSZ
description: Timestamp when response date was generated
statusCode:
type: integer
format: int32
example: 401
description: HTTP status code
statusMessage:
type: string
example: Unauthorized
description: Executed REST API status message
title: UnauthorizedResponseMetadata
AddOnServiceParameter:
type: object
properties:
value:
type: string
description: Value of this add-on service parameter.
type:
type: string
description: Type of this add-on service parameter.
optional:
type: boolean
description: Defines if this add-on service parameter is optional or not.
reference:
type: string
description: Service parameter reference of the add-on
title: AddOnServiceParameter
DeliveryChannel:
type: object
properties:
contractLetterType:
type: string
description: "Delivery channel used for card contract letters (optional) \nPossible values: EMAIL, WEB, LETTER, LETTER_AND_WEB, PUSH and MOBILE_APP"
enum:
- EMAIL
- WEB
- LETTER
- LETTER_AND_WEB
- PUSH
- MOBILE_APP
example: LETTER
disputeLetterType:
type: string
description: "Delivery channel used for dispute letters (optional) \nPossible values: EMAIL, WEB, LETTER, LETTER_AND_WEB, PUSH and MOBILE_APP"
enum:
- EMAIL
- WEB
- LETTER
- LETTER_AND_WEB
- PUSH
- MOBILE_APP
example: LETTER
statementType:
type: string
description: "Delivery channel used for statements (optional) \nPossible values: EMAIL, WEB, LETTER, LETTER_AND_WEB, PUSH and MOBILE_APP"
enum:
- EMAIL
- WEB
- LETTER
- LETTER_AND_WEB
- PUSH
- MOBILE_APP
example: LETTER
description: Specify the channel for letter delivery used for this contract
title: DeliveryChannel
GlobalSearchContractRequestAccount:
type: object
properties:
iban:
description: IBAN of an account is a criteria that is exclusive when searching with account's criteria.
type: string
accountMembershipNumber1:
description: Account membership number 1 is a criteria that is exclusive when searching with account's criteria.
type: string
accountMembershipNumber2:
description: Account membership number 2 is a criteria that is exclusive when searching with account's criteria.
type: string
accountIdentifier:
description: Account reference or issuer account external reference is a criteria that is exclusive when searching with account's criteria.
allOf:
- $ref: '#/components/schemas/AccountIdentifier'
title: GlobalSearchContractRequest.Account
CycleInformation:
type: object
description: Dates related to the closure calendar for the open closure cycle
properties:
cycleStartDate:
type: string
format: date-time
description: Date when the cycle is opened
cycleClosureDate:
type: string
format: date-time
description: Date when the open cycle is closed
statementGenerationDate:
type: string
format: date-time
description: Date when the statement is produced for the cycle
directDebitIssuingDate:
type: string
format: date-time
description: Direct debit issuing date of the cycle
directDebitDueDate:
type: string
format: date-time
description: Direct debit due date of the cycle
gracePeriodEndDate:
type: string
format: date-time
description: Grace period end date of the cycle
dueDateForSelfPayer:
type: string
format: date-time
description: Due date for self payer of the cycle
cycleDueDate:
type: string
format: date-time
description: Due date of the cycle, used for monitoring process (delinquency)
statementEffectiveStartDate:
type: string
format: date
description: "Effective start date of the statement period.\n\t\t\t\t\tExample :\n\t\tCycle closure is on 28th of each month at 20.00 PM\n\t\tIf closure on 28/08,\n\t\t- For August Statement: statementEffectiveStartDate = 29/07/2025 and statementEffectiveEndDate = 28/08/2025]\n\t\t- For September Statement : statementEffectiveStartDate = 29/08/2025 and statementEffectiveEndDate = 28/09/2025"
statementEffectiveEndDate:
type: string
format: date
description: "Effective end date of the statement period.\n\t\t\t\t\tExample :\n\t\tCycle closure is on 28th of each month at 20.00 PM\n\t\tIf closure on 28/08,\n\t\t- For August Statement: statementEffectiveStartDate = 29/07/2025 and statementEffectiveEndDate = 28/08/2025]\n\t\t- For September Statement : statementEffectiveStartDate = 29/08/2025 and statementEffectiveEndDate = 28/09/2025"
title: CycleInformation
OrderIdentifier:
type: object
description: Order reference calculated by our system
properties:
orderReference:
type: string
description: 'The reference of the order in our system, unique per platform
This reference is calculated from an algorithm configurable per issuer (currently a unique algorithm is defined).
The reference is composed of the creation date of the order (YYYYMMDD) + a sequence number of 16 digits (e;g; 202203212000000000097002, where 20220321 is the date when the order is created)'
title: OrderIdentifier
FeeCondition:
type: object
properties:
description:
type: string
description: Conditions of the fee generation for the event (optional)
operationType:
type: string
description: 'Contains the type of the operation on which the criteria applies
For example: PinOrderIssuing - PIN_REQUEST (optional)'
criteria:
type: string
description: 'Criteria of the fee condition
For example:
(counter[''ALL''] - counter[''IVR''] ) > 1 => If the condition is successfull, one Fee is allocated (optional)'
title: FeeCondition
ContractModel:
type: object
properties:
reference:
type: string
description: Model Reference
type:
type: string
description: 'Type of model
Possible values:
- ACCOUNT_SETUP_FEE
- MEMBERSHIP_FEE'
description: Model containing predefined configuration for fee generation applicable on a contract
title: ContractModel
InsuranceEvent:
type: object
properties:
insuranceEventCode:
type: string
description: Insurance event code
insuranceEventDate:
type: string
format: date-time
description: Date of insurance event
insuranceEventDescription:
type: string
description: Description of the insurance event
title: InsuranceEvent
AccountIdentifier:
type: object
properties:
accountReference:
type: string
description: Account reference is to identify the Account calculated by the system (algorithm is configurable per issuer). Either the account number or the issuerAccountExternalReference is provided, or, if both are provided then only the account number is used.
issuerAccountExternalReference:
type: string
description: Issuer account external reference is to identify the Account. Either the account number or the issuerAccountExternalReference is provided, or, if both are provided then only the account number is used. Algorithm configurable by issuer, can be generated by the system if there is an externalReferenceGeneratorAlgorithm.
title: AccountIdentifier
InternalServerErrorResponseMetadata:
type: object
required:
- correlationId
- responseDateTime
- statusCode
- statusMessage
properties:
correlationId:
type: string
description: Correlation Identifier
responseDateTime:
type: string
exa
# --- truncated at 32 KB (168 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wordline/refs/heads/main/openapi/wordline-contract-global-search-api-openapi.yml