Worldline Corporate Contract - Global Search API
Corporate Contract Global Search API Controller
Corporate 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-corporate-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 Corporate Contract - Global Search API
contact: {}
servers:
- url: https://sbx-wlip.api1-eu2.psapigateway.preprod.giservices.io/card-issuing/api/v2
tags:
- name: Corporate Contract - Global Search
description: Corporate Contract Global Search API Controller
paths:
/search-corporate-contracts:
post:
tags:
- Corporate Contract - Global Search
summary: Search corporate contracts
operationId: searchCorporateContracts
description: "The API provides possibility to retrieve a list of corporate contracts, based on certain criteria.\n\nOnly one of the following criteria for searching must be provided:\n* the corporate name and optionally company postal address information (street name, building number, zip code).\n* or the reference of the company : it can be provided by using the customer reference or the issuer customer 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* retrieve contract owner information\n* request to enrich the response with additional data relative to the root account, the companies, the current addresses of the companies, the corporate contract entities and the corporate employee accounts by using embedded fields\n\nThe API response contains all matched corporate contracts and for each returned corporate contract some information is provided such as\n•\tcontract identifier with the contract reference, the issuer external contract reference if originally provided\n•\tembedded fields if requested such as root account, list of all companies (limited to 100) with their addresses linked to this corporate contract, corporate contract entities(limited to 100), corporate employee accounts(limited to 100)."
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: embed
in: query
description: Embedded Fields
required: false
style: form
explode: true
schema:
type: array
items:
type: string
enum:
- rootAccount
- contractCompanies
- contractCompanies.addresses
- corporateContractEntities
- corporateEmployeeAccounts
- 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
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/ApiResponseEntityListCorporateContracts'
security:
- basic: []
deprecated: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GlobalSearchCorporateContractRequest'
required: true
components:
schemas:
CorporateContractFee:
type: object
allOf:
- $ref: '#/components/schemas/ContractFee'
- properties:
entityIdentifierMembershipFeePosting:
description: The corresponding entity identifier for Membership Fee posting
allOf:
- $ref: '#/components/schemas/FeePostingEntityIdentifier'
entityIdentifierAccountSetupFeePosting:
description: The corresponding entity identifier for Account Setup Fee posting
allOf:
- $ref: '#/components/schemas/FeePostingEntityIdentifier'
description: Specify the corporate contract Fee
title: CorporateContractFee
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
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
GlobalSearchCorporateContractRequestPostalAddress:
type: object
properties:
streetName:
type: string
description: 'The street name where is located the company.
This criteria is optional and accept wildcards (''%'' allows to achieve a search with only a partial input, ''Plat%'', ''%hill'', ''Al%gang'')'
buildingNumber:
type: string
description: 'The building number where is located the company.
This criteria is optional and accept wildcards (''%'' allows to achieve a search with only a partial input, ''12t%'', ''%4bll'')'
postCode:
type: string
description: 'The postal code where is located the company.
This criteria is optional and accept wildcards (''%'' allows to achieve a search with only a partial input, ''91%'', ''%41l'')'
title: GlobalSearchCorporateContractRequest.PostalAddress
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
FeePostingEntityIdentifier:
type: object
properties:
postingEntityAccountIdentifier:
description: The account identifier of the entity on which Membership Fee or Account setup Fee will be posted
allOf:
- $ref: '#/components/schemas/AccountIdentifier'
postingEntityCompanyExternalReference:
type: string
description: The external reference of the entity, provided by the Company, on which Membership Fee or Account setup Fee will be posted
postingEntityLevel:
type: integer
description: The corporate entitity level number on which Membership Fee or Account setup Fee will be posted
title: FeePostingEntityIdentifier
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
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
GlobalSearchCorporateContractRequest:
type: object
required:
- contractCompany
properties:
contractCompany:
type: object
description: The issuer must provide some information related to the company to filter the corporate contracts to be returned.
allOf:
- $ref: '#/components/schemas/GlobalSearchCorporateContractRequestCompany'
issuerId:
type: string
description: 'The search is performed by default on all issuers allowed for the user (depending on its rights)
- The user can limit the search to one issuer (optional).
- If provided, the list of issuerIds must not be provided, otherwise the search is not performed (an error is generated).'
includeSubIssuers:
type: boolean
description: 'The user can request to include in the search the sub issuers of an issuer, limited to issuers allowed for the user depending on its rights, only if an issuerId is provided.
Default value is false.'
default: false
issuerIds:
type: array
description: 'The search is performed by default on all issuers allowed for the user (depending on its rights)
- The user can limit the search to a list of issuers (optional)
- If provided, the issuerId must not be provided, otherwise the search is not performed (an error is generated).
- If at least one issuer is not allowed for this user among the provided list of issuers, the search is not performed (an error is generated).'
items:
type: string
retrieveContractOwner:
type: boolean
description: "Optional parameter to enrich the information retrieved.\n If the parameter is set to true, the contract owner will be retrieved in the list of companies.\n If the embed parameter contractCompanies is not requested and the parameter is set to true, an error will be raised."
title: GlobalSearchCorporateContractRequest
ApiResponseEntityListCorporateContracts:
x-wl-api-response: true
type: object
required:
- responseMetadata
properties:
responseMetadata:
description: Response metadata
allOf:
- $ref: '#/components/schemas/ResponseMetadata'
data:
type: array
description: Response data
items:
$ref: '#/components/schemas/CorporateContract'
description: Issuer response entity
title: ApiResponseEntityListCompany
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
example: format:yyyy-MM-dd'T'HH:mm:ss.SSSZ
description: Timestamp when response date was generated
statusCode:
type: integer
format: int32
example: 500
description: HTTP status code
statusMessage:
type: string
example: Internal server error
description: Executed REST API status message
title: InternalServerErrorResponseMetadata
Address:
type: object
required:
- addressLabel
- addressType
properties:
issuerId:
type: string
description: Issuer identifier (unique per platform)
addressIdentifier:
description: Unique identifier of the address. See the AddressIdentifier's datatype for a detail description
allOf:
- $ref: '#/components/schemas/AddressIdentifier'
addressVersionIdentifier:
allOf:
- $ref: '#/components/schemas/AddressVersionIdentifier'
addressLabel:
type: string
example: MAIN_POSTAL_ADDRESS
description: "example: MAIN_POSTAL_ADDRESS Indicate the class of the address amongst a list of possible values such as MAIN_POSTAL_ADDRESS, SECOND_POSTA
# --- truncated at 32 KB (163 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wordline/refs/heads/main/openapi/wordline-corporate-contract-global-search-api-openapi.yml