CyberSource Merchant Boarding API
Manage Boarding Registrations
Manage Boarding Registrations
swagger: '2.0'
info:
description: All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html
version: 0.0.1
title: CyberSource Merged Spec bankAccountValidation Merchant Boarding API
host: apitest.cybersource.com
basePath: /
schemes:
- https
consumes:
- application/json;charset=utf-8
produces:
- application/hal+json;charset=utf-8
tags:
- name: Merchant Boarding
description: Manage Boarding Registrations
paths:
/boarding/v1/registrations:
post:
tags:
- Merchant Boarding
x-devcenter-metaData:
categoryTag: Merchant_Boarding
isJstreeExpansionLimited: true
disableProcessorDropDown: true
authorizationType:
- Json Web Token
overrideMerchantCredential: apitester00
developerGuides: https://developer.cybersource.com/api/developer-guides/Merchant-Boarding-API_ditamap/Merchant-Boarding-API.html
summary: Create a boarding registration
description: 'Boarding Product is specifically for resellers who onboard merchants to resell their services to merchants and help integrate REST API into their systems.
The Boarding API is designed to simplify and streamline the onboarding process of merchants by enabling administrators and developers to:
1. Enable and Configure Products: The API helps in adding new products to an existing organization and configuring them to suit specific needs.
2. Update Merchant Information: The API allows for updating an organization''s information efficiently.
3. Manage Payment Integration: It provides templates for secure payment integration and management.
'
operationId: postRegistration
consumes:
- application/json
produces:
- application/json
parameters:
- in: header
name: v-c-idempotency-id
type: string
description: defines idempotency of the request
required: false
- in: body
name: postRegistrationBody
description: Boarding registration data
required: true
schema:
type: object
properties:
registrationInformation:
type: object
properties:
boardingRegistrationId:
type: string
maxLength: 60
example: '1234124'
readOnly: true
submitTimeUtc:
type: string
format: date-time
example: '2019-06-11T22:47:57Z'
description: 'Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`
Example 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the
time. The Z indicates UTC.
'
readOnly: true
status:
type: string
readOnly: true
description: "The status of Registration request\nPossible Values:\n - 'PROCESSING': This status is for Registrations that are still in Progress, you can get the latest status by calling the GET endpoint using the Registration Id\n - 'SUCCESS': This status is for Registrations that were successfull on every step of the on boarding process.\n - 'FAILURE': This status is for Registrations that fail before the Organization was created; please refer to the details section in the reponse for more information.\n - 'PARTIAL': This status is for Registrations that created the Organization successfully but fail in at least on step while configuring it; please refer to the details section in the response for more information.\n"
boardingPackageId:
type: string
maxLength: 60
example: 1004001
boardingFlow:
type: string
description: "Determines the boarding flow for this registration.\nPossible Values:\n - 'ENTERPRISE'\n - 'SMB'\n - 'ADDPRODUCT'\n"
mode:
type: string
description: "In case mode is not provided the API will use COMPLETE as default\nPossible Values:\n - 'COMPLETE'\n - 'PARTIAL'\n"
salesRepId:
type: string
maxLength: 60
example: Rep1
integrationInformation:
type: object
properties:
oauth2:
type: array
items:
type: object
properties:
client_id:
type: string
maxLength: 32
example: client123
state:
type: string
maxLength: 20
example: test123
required:
- client_id
tenantConfigurations:
type: array
description: tenantConfigurations is an array of objects that includes the tenant information this merchant is associated with.
items:
type: object
properties:
solutionId:
type: string
maxLength: 8
minLength: 8
pattern: ^[0-9a-zA-Z_]+$
description: 'The solutionId is the unique identifier for this system resource.
Partner can use it to reference the specific solution through out the system.
'
example: YumSolution1
tenantInformation:
type: object
properties:
tenantId:
type: string
maxLength: 50
minLength: 1
description: The TenantId is an external Solution Identifier given by Tech Partners like SAP.
example: SAP123
required:
- solutionId
msd:
type: object
properties:
customerId:
type: string
maxLength: 15
minLength: 1
description: The customerId is an external customer Identifier given by MSD (MS Dynamics).
example: C1234567890
organizationInformation:
type: object
properties:
organizationId:
type: string
maxLength: 30
minLength: 6
pattern: ^[0-9a-zA-Z_]+$
example: merch-test1
parentOrganizationId:
type: string
description: 'This field is required for Organization Types: MERCHANT, TRANSACTING
'
maxLength: 30
minLength: 6
pattern: ^[0-9a-zA-Z_]+$
example: merch-test1-acct
childOrganizations:
readOnly: true
type: array
items:
type: string
maxLength: 30
minLength: 6
pattern: ^[0-9a-zA-Z_]+$
example: transactional-org
type:
type: string
description: "Determines the type of organization in the hirarchy that this registration will use to onboard this Organization\nPossible Values:\n - 'TRANSACTING'\n - 'STRUCTURAL'\n - 'MERCHANT'\n"
status:
type: string
description: "Determines the status that the organization will be after being onboarded\nPossible Values:\n - 'LIVE'\n - 'TEST'\n - 'DRAFT'\n"
configurable:
description: This denotes the one organization, with exception to the TRANSACTING types, that is allowed to be used for configuration purposes against products. Eventually this field will be deprecated and all organizations will be allowed for product configuration.
type: boolean
default: false
example: false
businessInformation:
type: object
properties:
name:
type: string
maxLength: 60
minLength: 1
pattern: "^[0-9a-zA-Z _\\-\\+\\.\\*\\\"/'&\\,\\(\\)!$;:?@\\#¡-\uFFFF]+$"
example: Betos Restaurant
locale:
type: string
pattern: ^(de-de|en-gb|en-us|es-es|es-us|fr-ca|fr-fr|it-it|ja-jp|pt-br|zh-cn|zh-tw)$
example: en-us
localizedNames:
type: object
properties:
romaji:
type: string
pattern: "^[0-9a-zA-Z _\\-\\+\\.\\*\\\"/'&|\\[\\]\\,\\(\\)!$;:?@\\#¡-\uFFFF]*$"
example: tenmei
katakana:
type: string
pattern: "^[0-9a-zA-Z _\\-\\+\\.\\*\\\"/'&|\\[\\]\\,\\(\\)!$;:?@\\#¡-\uFFFF]*$"
example: ショップネーム
japanese:
type: string
pattern: "^[0-9a-zA-Z _\\-\\+\\.\\*\\\"/'&|\\[\\]\\,\\(\\)!$;:?@\\#¡-\uFFFF]*$"
example: 店名
doingBusinessAs:
type: string
maxLength: 60
pattern: "^[0-9a-zA-Z _\\-\\+\\.\\*\\\"/'&\\,\\(\\)!$;:?@\\#¡-\uFFFF]+$"
example: Betos Restaurant
description:
type: string
maxLength: 250
pattern: '[À-ÖØ-öø-ǿÀ-ÖØ-öø-ǿ\n\ra-zA-Z0-9().\-_#,;/\\@$:&!?%«»€₣«»€₣ ]{1,}$'
example: International food Restaurant
startDate:
type: string
format: date
pattern: ^\d{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$
example: '2019-06-11'
description: '`Format: YYYY-MM-DD`
Example 2016-08-11 equals August 11, 2016
'
address:
type: object
properties:
country:
type: string
maxLength: 2
minLength: 2
pattern: ^[À-ÖØ-öø-ǿa-zA-Z0-9().\-_#,;/@$:!% ]{1,}$
example: US
address1:
type: string
maxLength: 60
minLength: 1
pattern: ^[À-ÖØ-öø-ǿa-zA-Z0-9().\-_#,;/@$:!% ]{1,}$
example: 123 Fake st
address2:
type: string
maxLength: 60
pattern: ^[À-ÖØ-öø-ǿa-zA-Z0-9().\-_#,;/@$:!% ]{1,}$
example: apt 2
locality:
type: string
maxLength: 50
minLength: 1
pattern: "^[0-9a-zA-Z _\\-¡-\uFFFF]+$"
description: City of the billing address.
example: Bellevue
administrativeArea:
type: string
minLength: 1
maxLength: 50
pattern: "^[0-9a-zA-Z¡-\uFFFF ]*$"
description: State or province of the billing address. Required for United States and Canada.
example: WA
postalCode:
type: string
minLength: 1
maxLength: 20
pattern: ^[0-9a-zA-Z ]*$
description: Postal code for the billing address. The postal code must consist of 5 to 9 digits. Required for United States and Canada.
example: 6470
required:
- country
- address1
- locality
timeZone:
type: string
description: 'Merchant perferred time zone
Possible Values:
- ''Pacific/Pago_Pago''
- ''Pacific/Honolulu''
- ''America/Anchorage''
- ''America/Vancouver''
- ''America/Los_Angeles''
- ''America/Phoenix''
- ''America/Edmonton''
- ''America/Denver''
- ''America/Winnipeg''
- ''America/Mexico_City''
- ''America/Chicago''
- ''America/Bogota''
- ''America/Indianapolis''
- ''America/New_York''
- ''America/La_Paz''
- ''America/Halifax''
- ''America/St_Johns''
- ''America/Buenos_Aires''
- ''America/Godthab''
- ''America/Sao_Paulo''
- ''America/Noronha''
- ''Atlantic/Cape_Verde''
- ''GMT''
- ''Europe/Dublin''
- ''Europe/Lisbon''
- ''Europe/London''
- ''Africa/Tunis''
- ''Europe/Vienna''
- ''Europe/Brussels''
- ''Europe/Zurich''
- ''Europe/Prague''
- ''Europe/Berlin''
- ''Europe/Copenhagen''
- ''Europe/Madrid''
- ''Europe/Budapest''
- ''Europe/Rome''
- ''Africa/Tripoli''
- ''Europe/Monaco''
- ''Europe/Malta''
- ''Europe/Amsterdam''
- ''Europe/Oslo''
- ''Europe/Warsaw''
- ''Europe/Stockholm''
- ''Europe/Belgrade''
- ''Europe/Paris''
- ''Africa/Johannesburg''
- ''Europe/Minsk''
- ''Africa/Cairo''
- ''Europe/Helsinki''
- ''Europe/Athens''
- ''Asia/Jerusalem''
- ''Europe/Riga''
- ''Europe/Bucharest''
- ''Europe/Istanbul''
- ''Asia/Riyadh''
- ''Europe/Moscow''
- ''Asia/Dubai''
- ''Asia/Baku''
- ''Asia/Tbilisi''
- ''Asia/Calcutta''
- ''Asia/Katmandu''
- ''Asia/Dacca''
- ''Asia/Rangoon''
- ''Asia/Jakarta''
- ''Asia/Saigon''
- ''Asia/Bangkok''
- ''Australia/Perth''
- ''Asia/Hong_Kong''
- ''Asia/Macao''
- ''Asia/Kuala_Lumpur''
- ''Asia/Manila''
- ''Asia/Singapore''
- ''Asia/Taipei''
- ''Asia/Shanghai''
- ''Asia/Seoul''
- ''Asia/Tokyo''
- ''Asia/Yakutsk''
- ''Australia/Adelaide''
- ''Australia/Brisbane''
- ''Australia/Broken_Hill''
- ''Australia/Darwin''
- ''Australia/Eucla''
- ''Australia/Hobart''
- ''Australia/Lindeman''
- ''Australia/Sydney''
- ''Australia/Lord_Howe''
- ''Australia/Melbourne''
- ''Asia/Magadan''
- ''Pacific/Norfolk''
- ''Pacific/Auckland''
'
example: America/Chicago
websiteUrl:
type: string
maxLength: 100
pattern: "\\b((?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:'\".,<>?«»“â€\x9D‘’]))"
example: www.test.com
type:
type: string
description: "Business type\nPossible Values:\n - 'PARTNERSHIP'\n - 'SOLE_PROPRIETORSHIP'\n - 'CORPORATION'\n - 'LLC'\n - 'NON_PROFIT'\n - 'TRUST'\n"
taxId:
type: string
maxLength: 9
pattern: \d{9}
example: 254324
phoneNumber:
type: string
maxLength: 20
pattern: ^[0-9a-zA-Z\\+\\-]+$
example: 4564561234
businessContact:
type: object
properties:
firstName:
type: string
maxLength: 50
pattern: "^[0-9a-zA-Z _\\-\\+\\.\\*\\\"/'&\\,\\(\\)!$;:?@\\#¡-\uFFFF]+$"
example: John
middleName:
type: string
maxLength: 50
pattern: "^[0-9a-zA-Z _\\-\\+\\.\\*\\\"/'&\\,\\(\\)!$;:?@\\#¡-\uFFFF]+$"
example: John
lastName:
type: string
maxLength: 50
pattern: "^[0-9a-zA-Z _\\-\\+\\.\\*\\\"/'&\\,\\(\\)!$;:?@\\#¡-\uFFFF]+$"
example: John
phoneNumber:
type: string
maxLength: 20
pattern: ^[0-9a-zA-Z\\+\\-]+$
example: 4567890398
email:
type: string
maxLength: 100
pattern: ^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,50}|[0-9]{1,3})(\]?)$
example: test@test.com
required:
- firstName
- lastName
- phoneNumber
- email
technicalContact:
type: object
properties:
firstName:
type: string
maxLength: 50
pattern: "^[0-9a-zA-Z _\\-\\+\\.\\*\\\"/'&\\,\\(\\)!$;:?@\\#¡-\uFFFF]+$"
example: John
middleName:
type: string
maxLength: 50
pattern: "^[0-9a-zA-Z _\\-\\+\\.\\*\\\"/'&\\,\\(\\)!$;:?@\\#¡-\uFFFF]+$"
example: John
lastName:
type: string
maxLength: 50
pattern: "^[0-9a-zA-Z _\\-\\+\\.\\*\\\"/'&\\,\\(\\)!$;:?@\\#¡-\uFFFF]+$"
example: John
phoneNumber:
type: string
maxLength: 20
pattern: ^[0-9a-zA-Z\\+\\-]+$
example: 4567890398
email:
type: string
maxLength: 100
pattern: ^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,50}|[0-9]{1,3})(\]?)$
example: test@test.com
required:
- firstName
- lastName
- phoneNumber
- email
emergencyContact:
type: object
properties:
firstName:
type: string
maxLength: 50
pattern: "^[0-9a-zA-Z _\\-\\+\\.\\*\\\"/'&\\,\\(\\)!$;:?@\\#¡-\uFFFF]+$"
example: John
middleName:
type: string
maxLength: 50
pattern: "^[0-9a-zA-Z _\\-\\+\\.\\*\\\"/'&\\,\\(\\)!$;:?@\\#¡-\uFFFF]+$"
example: John
lastName:
type: string
maxLength: 50
pattern: "^[0-9a-zA-Z _\\-\\+\\.\\*\\\"/'&\\,\\(\\)!$;:?@\\#¡-\uFFFF]+$"
example: John
phoneNumber:
type: string
maxLength: 20
pattern: ^[0-9a-zA-Z\\+\\-]+$
example: 4567890398
email:
type: string
maxLength: 100
pattern: ^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,50}|[0-9]{1,3})(\]?)$
example: test@test.com
required:
- firstName
- lastName
- phoneNumber
- email
merchantCategoryCode:
type: string
maxLength: 4
pattern: ^\d{3,4}$
example: 5300
description: Industry standard Merchant Category Code (MCC)
required:
- name
KYC:
type: object
properties:
whenIsCustomerCharged:
type: string
example: ONETIMEBEFORE
description: 'Possible values:
- ONETIMEBEFORE
- ONETIMEAFTER
- OTHER'
whenIsCustomerChargedDescription:
type: string
maxLength: 100
offerSubscriptions:
type: boolean
example: true
monthlySubscriptionPercent:
type: number
format: decimal
pattern: ^((100)|(\d{0,2}))$
example: 30
quarterlySubscriptionPercent:
type: number
format: decimal
pattern: ^((100)|(\d{0,2}))$
example: 20
semiAnnualSubscriptionPercent:
type: number
format: decimal
pattern: ^((100)|(\d{0,2}))$
example: 50
annualSubscriptionPercent:
type: number
format: decimal
pattern: ^((100)|(\d{0,2}))$
example: 100
timeToProductDelivery:
type: string
description: 'Possible values:
- INSTANT
- UPTO2
- UPTO5
- UPTO10
- GREATERTHAN10'
estimatedMonthlySales:
type: number
format: currency
pattern: ^\d{1,8}(\.\d{1,2})?$
example: 10000.5
averageOrderAmount:
type: number
format: currency
pattern: ^\d{1,6}(\.\d{1,2})?$
example: 50.5
largestExpectedOrderAmount:
type: number
format: currency
pattern: ^\d{1,6}(\.\d{1,2})?$
example: 100.5
depositBankAccount:
type: object
properties:
accountHolderName:
type: string
maxLength: 40
pattern: ^[À-ÖØ-öø-ǿÀ-ÖØ-öø-ǿa-zA-Z0-9().\-_#,;/\\@$:&!?%«»€₣«»€₣ ]{1,}$
example: John Doe
accountType:
type: string
example: checking
description: 'Possible values:
- checking
- savings
- corporatechecking
- corporatesavings'
accountRoutingNumber:
type: string
maxLength: 9
pattern: \d{9}
accountNumber:
type: string
maxLength: 17
pattern: ^\d{5,17}$
required:
- accountHolderName
- accountType
- accountRoutingNumber
- accountNumber
required:
- whenIsCustomerCharged
- offerSubscriptions
- timeToProductDelivery
- estimatedMonthlySales
- averageOrderAmount
- largestExpectedOrderAmount
owners:
type: array
items:
type: object
properties:
firstName:
type: string
maxLength: 50
pattern: '[À-ÖØ-öø-ǿÀ-ÖØ-öø-ǿa-zA-Z().\-_#,;/\\@$:&!?%«»€₣«»€₣ ]{1,}$'
example: John
middleName:
type: string
maxLength: 50
pattern: '[À-ÖØ-öø-ǿÀ-ÖØ-öø-ǿa-zA-Z().\-_#,;/\\@$:&!?%«»€₣«»€₣ ]{1,}$'
example: John
lastName:
type: string
maxLength: 50
pattern: '[À-ÖØ-öø-ǿÀ-ÖØ-öø-ǿa-zA-Z().\-_#,;/\\@$:&!?%«»€₣«»€₣ ]{1,}$'
example: John
birthDate:
type: string
format: date
pattern: ^\d{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$
example: '2016-08-11'
description: '`Format: YYYY-MM-DD`
Example 2016-08-11 equals August 11, 2016
'
isPrimary:
type: boolean
description: Determines whether the owner is the Primary owner of the organization
example: true
ssn:
type: string
maxLength: 12
pattern: ^\d{3}-\d{2}-\d{4}$|^\d{9,9}$
example: 123456789
description: Social Security Number
passportNumber:
type: string
maxLength: 12
pattern: ^(?!^0+$)[a-zA-Z0-9]{3,20}$
example: '1234556'
description: Passport number
passportCountry:
type: string
maxLength: 2
minLength: 2
pattern: ^[À-ÖØ-öø-ǿa-zA-Z0-9().\-_#,;/@$:!% ]{1,}$
example: US
jobTitle:
type: string
maxLength: 100
pattern: ^[À-ÖØ-öø-ǿa-zA-Z0-9().\-_#,;/@$:!% ]{1,}$
example: Director
hasSignificantResponsability:
type: boolean
description: Determines whether owner has significant responsibility to control, manage or direct the company
example: true
ownershipPercentage:
type: number
pattern: ^[0-9]$|^[1-9][0-9]$|^(100)$
description: Determines the percentage of ownership this owner has. For the primary owner the percentage can be from 0-100; for other owners the percentage can be from 25-100 and the sum of ownership accross owners cannot exceed 100
example: 25
phoneNumber:
type: string
maxLength: 20
pattern: ^[0-9a-zA-Z\\+\\-]+$
example: 4567890398
email:
type: string
maxLength: 100
pattern: ^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,50}|[0-9]{1,3})(\]?)$
example: test@test.com
address:
type: object
properties:
country:
type: string
maxLength: 2
minLength: 2
pattern: ^[À-ÖØ-öø-ǿa-zA-Z0-9().\-_#,;/@$:!% ]{1,}$
example: US
address1:
type: string
maxLength: 60
minLength: 1
pattern: ^[À-ÖØ-öø-ǿa-zA-Z0-9().\-_#,;/@$:!% ]{1,}$
example: 123 Fake st
address2:
type: string
maxLength: 60
pattern: ^[À-ÖØ-öø-ǿa-zA-Z0-9().\-_#,;/@$:!% ]{1,}$
example: apt 2
locality:
type: string
maxLength: 50
minLength: 1
pattern: "^[0-9a-zA-Z _\\-¡-\uFFFF]+$"
description: City of the billing address.
example: Bellevue
administrativeArea:
type: string
minLength: 1
maxLength: 50
pattern: "^[0-9a-zA-Z¡-\uFFFF ]*$"
description: State or province of the
# --- truncated at 32 KB (1375 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cybersource/refs/heads/main/openapi/cybersource-merchant-boarding-api-openapi.yml