openapi: 3.0.1
info:
title: Embedded Banking Solutions API
version: 1.0.8
description: Embedded Banking Solutions services from J.P. Morgan
contact:
name: JPMC Technical Services Support
servers:
- url: https://apigateway.jpmorgan.com/tsapi/ef/v1
description: JPM-PROD - Embedded Payments
- url: https://api-mock.payments.jpmorgan.com/tsapi/ef/v1
description: JPM-PROD - Embedded Payments Mock
- url: https://apigatewaycat.jpmorgan.com/tsapi/ef/v1
description: JPM-CAT - Embedded Payments
tags:
- name: Clients EB
description: Onboard and manage clients.
- name: Documents EB
description: Manage document upload and retrieval.
- name: Users
description: Manage users of a profile.
- name: Accounts
description: Create, organize and manage accounts.
- name: Debit Cards
description: Request and manage debit cards.
- name: Recipients
description: Set up and manage who can be paid through transactions.
- name: Transactions EB
description: Initiate and track the movement of funds, including payments.
- name: Statements
description: Access monthly statements for accounts.
- name: Cases
description: Create and manage support request cases for users.
- name: Billing
description: View billing configuration
- name: Webhooks
description: Create and manage webhook subscriptions for your platform.
- name: Faq
description: Retrieve general FAQ content and FAQ content unique to your platform.
- name: Reference Data
description: Access reference data to populate experiences, such as onboarding.
- name: Payment Intents
description: Setup and manage payment intents.
paths:
/clients:
x-eb-only: true
get:
tags:
- Clients EB
summary: List clients
description: Returns a list of Embedded Finance clients associated with your platform.
operationId: getAllClients
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/pageNo'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/ListClientInformationResponse'
examples:
ListClientInformationRes:
$ref: '#/components/examples/ListClientInformationRes'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
post:
tags:
- Clients EB
summary: Create client
description: Creates a new client.
operationId: postClients
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateClientRequest'
examples:
CreateClientSolePropReq:
$ref: '#/components/examples/CreateClientSolePropReq'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ClientInformationResponse'
examples:
CreateClientSolePropRes:
$ref: '#/components/examples/CreateClientSolePropRes'
'201':
description: Created.
content:
application/json:
schema:
$ref: '#/components/schemas/ClientInformationResponse'
examples:
CreateClientSolePropRes:
$ref: '#/components/examples/CreateClientSolePropRes'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/clients/{id}:
x-eb-only: true
get:
tags:
- Clients EB
summary: Get client
description: Returns details for a specific client using their unique identifier.
operationId: getClientDetails
parameters:
- $ref: '#/components/parameters/token'
- name: id
in: path
description: Unique identifier for a client.
required: true
style: simple
schema:
type: string
example: '1000010400'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/ClientInformationResponse'
examples:
SkeletonClientClientShouldRetrieveItsOwnInformationRes:
$ref: '#/components/examples/SkeletonClientClientShouldRetrieveItsOwnInformationRes'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
post:
tags:
- Clients EB
summary: Update client
description: Updates information about a specified client.
operationId: updateClients
parameters:
- $ref: '#/components/parameters/token'
- name: id
in: path
description: Unique identifier for a client.
required: true
example: '1000010400'
style: simple
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateClientRequest'
examples:
UpdateClientReq:
$ref: '#/components/examples/UpdateClientReq'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateClientResponse'
examples:
UpdateClientRes:
$ref: '#/components/examples/UpdateClientRes'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/clients/{id}/verifications:
x-eb-only: true
get:
summary: Get client verifications
description: Get current and outstanding verifications for a given client. These tell clients what is required to complete onboarding.
tags:
- Clients EB
operationId: getClientVerification
parameters:
- $ref: '#/components/parameters/token'
- in: path
name: id
description: Unique identifier for a client.
example: '1000010400'
schema:
type: string
required: true
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/ClientVerificationsInformationResponse'
examples:
ClientSubmittedVerificationsSuccessfully:
$ref: '#/components/examples/ClientSubmittedVerificationsSuccessfully'
ClientVerificationResponseWhenIdentityVerificationFailedForClient:
$ref: '#/components/examples/ClientVerificationResponseWhenIdentityVerificationFailedForClient'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
post:
summary: Add client verifications
description: Adds verification information provided by the client to continue onboarding.
operationId: addClientVerification
tags:
- Clients EB
parameters:
- $ref: '#/components/parameters/token'
- in: path
name: id
description: Unique identifier for a client.
schema:
type: string
required: true
example: '1000011659'
requestBody:
description: Client verification to add to the system.
content:
application/json:
schema:
$ref: '#/components/schemas/ClientVerificationsInformationRequest'
examples:
ClientShouldSuccessfullyPostVerificationAnswersReq:
$ref: '#/components/examples/ClientShouldSuccessfullyPostVerificationAnswersReq'
required: true
responses:
'201':
description: Created.
content:
application/json:
schema:
$ref: '#/components/schemas/ClientVerificationsInformationResponse'
examples:
ClientShouldSuccessfullyPostVerificationAnswersRes:
$ref: '#/components/examples/ClientShouldSuccessfullyPostVerificationAnswersRes'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/users:
x-eb-only: true
get:
tags:
- Users
summary: List users
description: Retrieves list of users for a client. The API by default retrieves a lighter version of data.
operationId: getAllUsers
parameters:
- $ref: '#/components/parameters/userToken'
- $ref: '#/components/parameters/userFetchLevel'
- $ref: '#/components/parameters/userPageSize'
- $ref: '#/components/parameters/userPageNo'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/ListUserResponse'
examples:
ListUsersWithResources:
$ref: '#/components/examples/ListUsersWithResources'
'400':
$ref: '#/components/responses/user400ClientId'
'401':
$ref: '#/components/responses/user401'
'403':
$ref: '#/components/responses/user403'
'500':
$ref: '#/components/responses/user500'
'501':
$ref: '#/components/responses/user501'
'503':
$ref: '#/components/responses/user503'
post:
tags:
- Users
summary: Create user
description: Creates a new user. This API is developed to enable clients to create a user for accessing and managing resources for that client. The payload has a property partyId. This partyId is used to add an existing party as a user. Phone field is optional when partyId is provided. When partyId is not provided, then phone field should be populated. When providing a role, if the role is a DEBIT_CARD_HOLDER then the resourceType and resourceId and action should be provided.
operationId: postUsers
parameters:
- $ref: '#/components/parameters/userToken'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateUserRequest'
examples:
CreateUserExistingParty:
$ref: '#/components/examples/CreateUserExistingParty'
CreateUserNewParty:
$ref: '#/components/examples/CreateUserNewParty'
responses:
'201':
description: Created.
content:
application/json:
schema:
$ref: '#/components/schemas/UserResponse'
examples:
GetUser:
$ref: '#/components/examples/GetUser'
'400':
$ref: '#/components/responses/user400'
'401':
$ref: '#/components/responses/user401'
'403':
$ref: '#/components/responses/user403'
'500':
$ref: '#/components/responses/user500'
'501':
$ref: '#/components/responses/user501'
'503':
$ref: '#/components/responses/user503'
/users/{id}:
x-eb-only: true
get:
tags:
- Users
summary: Get user
description: Retrieves details for a specific user.
operationId: getUserDetails
parameters:
- $ref: '#/components/parameters/userToken'
- $ref: '#/components/parameters/userId'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/UserResponse'
examples:
GetUser:
$ref: '#/components/examples/GetUser'
'401':
$ref: '#/components/responses/user401'
'403':
$ref: '#/components/responses/user403'
'404':
$ref: '#/components/responses/user404'
'500':
$ref: '#/components/responses/user500'
'501':
$ref: '#/components/responses/user501'
'503':
$ref: '#/components/responses/user503'
post:
tags:
- Users
summary: Update user
description: Updates information about user. For additional users only, full details like name, email, address phone and role can be updated.
operationId: updateUserById
parameters:
- $ref: '#/components/parameters/userToken'
- $ref: '#/components/parameters/userId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateUserRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UserResponse'
'400':
$ref: '#/components/responses/user400'
'401':
$ref: '#/components/responses/user401'
'403':
$ref: '#/components/responses/user403'
'500':
$ref: '#/components/responses/user500'
'501':
$ref: '#/components/responses/user501'
'503':
$ref: '#/components/responses/user503'
/roles:
x-eb-only: true
get:
tags:
- Roles
summary: List all roles
description: Retrieves a list of roles
operationId: getAllRoles
parameters:
- $ref: '#/components/parameters/userToken'
- $ref: '#/components/parameters/userPageSize'
- $ref: '#/components/parameters/userPageNo'
- $ref: '#/components/parameters/userRole'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/ListRoleResponse'
examples:
ListAllRoles:
$ref: '#/components/examples/ListAllRoles'
FetchRolByRoleName:
$ref: '#/components/examples/FetchRolByRoleName'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/UserApiError'
example:
error: BAD_REQUEST
message: Error in Request Formatting
reasons:
- reason: INVALID_HEADER_CLIENT_ID
field: client_id
rejectedValue: '003000013'
message: clientId must be an integer, min and max length of 10 and must not start with 000
'401':
$ref: '#/components/responses/user401'
'403':
$ref: '#/components/responses/user403'
'500':
$ref: '#/components/responses/user500'
'501':
$ref: '#/components/responses/user501'
'503':
$ref: '#/components/responses/user503'
/documents:
x-eb-only: true
get:
summary: Get details of documents of a specified type
description: Returns details of documents and their ids based on the product and jurisdiction for a client.
operationId: documentsDetails
tags:
- Documents EB
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/documentType'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/pageNo'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/ListDocumentsDetailsResponse'
examples:
LatestClientDocumentDetailResponseByDocumentType:
$ref: '#/components/examples/LatestClientDocumentDetailResponseByDocumentType'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/documents/{id}:
x-eb-only: true
get:
summary: Retrieve details of a document
description: Retrieves details of a document using the document unique identifier.
operationId: getDocumentDetails
tags:
- Documents EB
parameters:
- $ref: '#/components/parameters/token'
- in: path
name: id
description: Document unique identifier.
example: 62d29548-f55a-458e-b9bb-ed32a6a05a1b
schema:
type: string
format: uuid
required: true
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/DocumentDetails'
examples:
GetDocumentDetailsByDocumentIdExampleForTermsAndConditions:
$ref: '#/components/examples/GetDocumentDetailsByDocumentIdExampleForTermsAndConditions'
GetDocumentDetailsByDocumentIdExampleForCIPDocument:
$ref: '#/components/examples/GetDocumentDetailsByDocumentIdExampleForCIPDocument'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/documents/{id}/file:
x-eb-only: true
get:
summary: Download a document
description: Download a document using the document unique identifier.
operationId: downloadDocument
tags:
- Documents EB
parameters:
- $ref: '#/components/parameters/token'
- in: path
name: id
description: Document unique identifier.
example: 73bd1c1d-6635-43ff-a8e5-b252926bddba
schema:
type: string
format: uuid
required: true
responses:
'200':
description: Ok.
content:
application/pdf:
schema:
type: string
format: byte
image/png:
schema:
type: string
format: byte
image/jpeg:
schema:
type: string
format: byte
image/heic:
schema:
type: string
format: byte
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/debit-cards:
x-eb-only: true
get:
summary: List cards
description: Returns a list of debit cards for a specific client.
operationId: getDebitCards
parameters:
- $ref: '#/components/parameters/token'
- in: query
name: page
description: Current page number.
schema:
type: integer
default: 0
required: false
examples:
Default:
value: 0
- in: query
name: limit
description: Number of records per page.
schema:
type: integer
default: 25
required: false
examples:
Default:
value: 25
responses:
'200':
description: List debit cards
content:
application/json:
schema:
$ref: '#/components/schemas/DebitCardsResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
description: ERROR.
content:
application/json:
schema:
$ref: '#/components/schemas/CardDetailsErrorResponse'
'503':
description: ERROR.
content:
application/json:
schema:
$ref: '#/components/schemas/CardDetailsErrorResponse'
tags:
- Debit Cards
post:
summary: Create debit card
description: Creates a new debit card.
operationId: createDebitCard
parameters:
- $ref: '#/components/parameters/token'
requestBody:
required: true
description: Customer account details required to create a new debit card.
content:
application/json:
schema:
$ref: '#/components/schemas/CreateDebitCardRequest'
examples:
createDebitCardPayload:
$ref: '#/components/examples/createDebitCardRequestPayload'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/CreateDebitCardResponse'
examples:
createDebitCardResponsePayload:
$ref: '#/components/examples/createDebitCardResponsePayload'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
tags:
- Debit Cards
/debit-cards/{id}:
x-eb-only: true
get:
summary: Get card
description: Returns card ID and iFrame link for virtual card details for a specific card.
operationId: getDebitCard
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/debitCardIdInPath'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/CardDetailResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
tags:
- Debit Cards
post:
summary: Update card
description: Updates card details, such as PIN reset or to lock a lost card.
operationId: updateCard
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/debitCardIdInPath'
requestBody:
description: Card update info required to either set/reset PIN, lock/unlock card set card as replaced, or set card as cancelled.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CardUpdateRequest'
examples:
setPinPayload:
$ref: '#/components/examples/setPinPayload'
setCardLockedPayload:
$ref: '#/components/examples/setCardLockedPayload'
setCardReplacedPayload:
$ref: '#/components/examples/setCardReplacedPayload'
setCardCancelledPayload:
$ref: '#/components/examples/setCardCancelledPayload'
setMaxSpendLimit:
$ref: '#/components/examples/setMaxSpendLimit'
setMaxCashWithdrawalLimit:
$ref: '#/components/examples/setMaxCashWithdrawalLimit'
clearCashWithdrawalAndDailySpendLimit:
$ref: '#/components/examples/clearCashWithdrawalAndDailySpendLimit'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/CardUpdateResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
tags:
- Debit Cards
/debit-cards/{id}/lock:
x-eb-only: true
post:
summary: Lock a Debit Card
description: Lock a card, blocks transactions
operationId: lockDebitCard
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/debitCardIdInPath'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/CardUpdateResponse'
'400':
$ref: '#/components/responses/400V2'
'401':
$ref: '#/components/responses/401V2'
'403':
$ref: '#/components/responses/403V2'
'404':
$ref: '#/components/responses/404V2'
'500':
$ref: '#/components/responses/500V2'
'503':
$ref: '#/components/responses/503V2'
tags:
- Debit Cards
/debit-cards/{id}/unlock:
x-eb-only: true
post:
summary: Unlock a Debit Card
description: Unlock a card, allows transactions
operationId: unlockDebitCard
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/debitCardIdInPath'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/CardUpdateResponse'
'400':
$ref: '#/components/responses/400V2'
'401':
$ref: '#/components/responses/401V2'
'403':
$ref: '#/components/responses/403V2'
'404':
$ref: '#/components/responses/404V2'
'500':
$ref: '#/components/responses/500V2'
'503':
$ref: '#/components/responses/503V2'
tags:
- Debit Cards
/debit-cards/{id}/cancel:
x-eb-only: true
post:
summary: Cancel a Debit Card
description: Cancel a card without issuing a replacement.
operationId: cancelDebitCard
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/debitCardIdInPath'
requestBody:
description: Info required to cancel.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CardCancelRequest'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/CardUpdateResponse'
'400':
$ref: '#/components/responses/400V2'
'401':
$ref: '#/components/responses/401V2'
'403':
$ref: '#/components/responses/403V2'
'404':
$ref: '#/components/responses/404V2'
'500':
$ref: '#/components/responses/500V2'
'503':
$ref: '#/components/responses/503V2'
tags:
- Debit Cards
/debit-cards/{id}/replace:
x-eb-only: true
post:
summary: Replace Card
description: Replace a card, cancels an existing card and issues a replacement.
operationId: replaceDebitCard
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/debitCardIdInPath'
requestBody:
description: Info required to replace.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CardReplaceRequest'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/CardUpdateResponse'
'400':
$ref: '#/components/responses/400V2'
'401':
$ref: '#/components/responses/401V2'
'403':
$ref: '#/components/responses/403V2'
'404':
$ref: '#/components/responses/404V2'
'500':
$ref: '#/components/responses/500V2'
'503':
$ref: '#/components/responses/503V2'
tags:
- Debit Cards
/debit-cards/{id}/set-pin:
x-eb-only: true
post:
summary: Set a debit card pin number
description: Set a pin on a debit card.
operationId: setDebitCardPin
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/debitCardIdInPath'
requestBody:
description: Card pin update.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CardPinChangeRequest'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/CardUpdateResponse'
'400':
$ref: '#/components/responses/400V2'
'401':
$ref: '#/components/responses/401V2'
'403':
$ref: '#/components/responses/403V2'
'404':
$ref: '#/components/responses/404V2'
'500':
$ref: '#/components/responses/500V2'
'503':
$ref: '#/components/responses/503V2'
tags:
- Debit Cards
/debit-cards/{id}/set-limit:
x-eb-only: true
post:
summary: Set debit card limits
description: Set debit card limits
operationId: setDebitCardLimit
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/debitCardIdInPath'
requestBody:
description: Card update info required to set or update limits.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CardLimitChangeRequest'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/CardUpdateResponse'
'400':
$ref: '#/components/responses/400V2'
'401':
$ref: '#/components/responses/401V2'
'403':
$ref: '#/components/responses/403V2'
'404':
$ref: '#/components/responses/404V2'
'500':
$ref: '#/components/responses/500V2'
'503':
$ref: '#/components/responses/503V2'
tags:
- Debit Cards
/recipients:
get:
summary: List recipients
description: Returns a list of all recipients for a given client profile.
operationId: getAllRecipients
tags:
- Recipients
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/clientIdInQuery'
- name: type
in: query
description: Recipient type to return
required: false
example: RECIPIENT
schema:
$ref: '#/components/schemas/RecipientType'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/pageNo'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/ListRecipientsResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
post:
summary: Create recipient
description: Creates a new recipient.
operationId: createRecipient
tags:
- Recipients
parameters:
- $ref: '#/components/parameters/token'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RecipientRequest'
examples:
CreateRecipientReq:
$ref: '#/components/examples/CreateRecipientReq'
CreatePaymentIntentRecipientReq:
$ref: '#/components/examples/CreatePaymentIntentRecipientReq'
responses:
'201':
description: The recipient was created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Recipient'
examples:
CreateRecipientRes:
$ref: '#/components/examples/CreateRecipientRes'
CreatePaymentIntentRecipientRes:
$ref: '#/components/examples/CreatePaymentIntentRecipientRes'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/recipients/{id}:
get:
summary: Get recipient
description: Returns information about a specific recipient.
operationId: getRecipient
tags:
- Recipients
parameters:
- $ref: '#/components/parameters/token'
- name: id
in: path
description: Recipient ID. A unique identifier for a recipient.
required: true
schema:
type: string
example: 616d93a1-ce53-4c71-b03b-02a11396db28
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/Recipient'
examples:
GetRecipientRes:
$ref: '#/components/examples/GetRecipientRes'
GetPaymentIntentRecipientRes:
$ref: '#/components/examples/GetPaymentIntentRecipientRes'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
post:
summary: Update recipient
description: Updates details of a recipient, such as adding values for attributes related to payment types. All attributes must be provided in the same format as when creating a recipient. The value partyDetails.type cannot be amended after creation.
operationId: amendRecipient
tags:
- Recipients
parameters:
- $ref: '#/components/parameters/token'
- name: id
in: path
description: Recipient ID. A unique identifier for a recipient.
required: true
schema:
type: string
example: 616d93a1-ce53-4c71-b03b-02a11396db28
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateRecipientRequest'
examples:
UpdateRecipientReq:
$ref: '#/components/examples/UpdateRecipientReq'
responses:
'200':
description: The recipient was amended successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Recipient'
examples:
UpdateRecipientRes:
$ref: '#/components/examples/UpdateRecipientRes'
UpdatePaymentIntentRecipientRes:
$ref: '#/components/examples/UpdatePaymentIntentRecipientRes'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/recipients/{id}/verify-microdeposit:
post:
summary: Creates a microdeposits verification process.
description: Creates a microdeposits verification process.
operationId: recipientsVerification
tags:
- Recipients
parameters:
- $ref: '#/components/parameters/token'
- name: id
in: path
description: Recipient ID. A unique identifier for a recipient.
required: true
schema:
type: string
example: dea21834-f876-404b-a240-9977e598da5e
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MicrodepositAmounts'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/MicrodepositVerificationResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/cases:
x-eb-only: true
get:
tags:
- Cases
summary: Returns all cases for client profile.
description: Get cases for client profile
operationId: getCases
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/casesPageSize'
- $ref: '#/components/parameters/casesPageNo'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/CasesPaginationResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
post:
tags:
- Cases
summary: Create a new case
description: Raises a case for support with Embedded Finance.
operationId: createCase
requestBody:
required: true
description: Information needed to create a new case.
content:
application/json:
schema:
$ref: '#/components/schemas/CaseCreateRequest'
parameters:
- $ref: '#/components/parameters/token'
responses:
'201':
description: Created.
content:
application/json:
schema:
$ref: '#/components/schemas/CaseCreateResponse'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/cases/{id}:
x-eb-only: true
get:
tags:
- Cases
summary: Returns details of a case using the unique case ID.
description: Get case details
operationId: getCase
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/CaseDetails'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
parameters:
- $ref: '#/components/parameters/token'
- name: id
in: path
description: Case identifier
required: true
schema:
type: string
style: simple
example: '00001154'
post:
tags:
- Cases
summary: Update information on a specific case.
description: Update case
operationId: updateCase
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CaseUpdateRequest'
responses:
'200':
description: Updated.
content:
application/json:
schema:
$ref: '#/components/schemas/CaseDetails'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
parameters:
- name: id
in: path
description: Case ID. The unique identifier for a case.
required: true
schema:
type: string
style: simple
example: '00001154'
- $ref: '#/components/parameters/token'
/faqs:
x-eb-only: true
get:
tags:
- Faq
summary: API to retrieve general FAQ content as well as C1 specific FAQ content
description: Retrieve FAQs
operationId: getFaq
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/FAQResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
parameters:
- $ref: '#/components/parameters/clientIdInQuery'
- $ref: '#/components/parameters/token'
- name: tags
in: query
description: Comma seperated tag values
required: false
example:
- Payments
- Banking
schema:
type: array
items:
type: string
/webhooks:
get:
summary: List webhooks
description: List all your webhooks
operationId: listWebhooks
tags:
- Webhooks
parameters:
- $ref: '#/components/parameters/pageNo'
- $ref: '#/components/parameters/pageSize'
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/ListWebhookResponse'
examples:
ListWebhooks:
$ref: '#/components/examples/ListWebhooks'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
post:
summary: Create a webhook subscription.
description: Create a webhook subscription
operationId: createWebhook
tags:
- Webhooks
parameters: []
requestBody:
required: true
description: Create a new webhook request.
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookRequest'
examples:
CreateAWebhookReq:
$ref: '#/components/examples/CreateAWebhookReq'
responses:
'201':
description: Created.
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookResponse'
examples:
CreateAWebhookRes:
$ref: '#/components/examples/CreateAWebhookRes'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/webhooks/{id}:
get:
summary: Get a webhook subscription by ID.
description: Get details of your subscription to a specific webhook.
operationId: getWebhook
tags:
- Webhooks
parameters:
- name: id
in: path
description: Unique identifier for webhook subscription
required: true
example: 944803b0-f1c2-4b28-91ce-8985b1f317a7
schema:
type: string
style: simple
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookResponse'
examples:
GetWebhookByIdRes:
$ref: '#/components/examples/GetWebhookByIdRes'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
post:
summary: Update a webhook by ID.
description: Add or Remove webhook subscriptions and change a webhook status to ACTIVE or INACTIVE
operationId: updateWebhook
tags:
- Webhooks
parameters:
- name: id
in: path
example: 944803b0-f1c2-4b28-91ce-8985b1f317a7
schema:
type: string
description: Unique identifier of the webhook to be updated
required: true
requestBody:
required: true
description: Update an existing webhook subscription.
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookUpdateRequest'
examples:
AddEventsToAWebhookSubscription:
$ref: '#/components/examples/AddSubscriptionsToAWebhook'
RemoveEventsToAWebhookSubscription:
$ref: '#/components/examples/RemoveSubscriptionsFromAWebhook'
ReplaceStatusOfAWebhookSubscription:
$ref: '#/components/examples/ChangeStatusOfAWebhook'
responses:
'200':
description: OK.
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookResponse'
examples:
AddEventsToAWebhookSubscriptionRes:
$ref: '#/components/examples/AddSubscriptionsToAWebhookRes'
RemoveEventsToAWebhookSubscriptionRes:
$ref: '#/components/examples/RemoveSubscriptionsFromAWebhookRes'
ReplaceStatusOfAWebhookSubscriptionRes:
$ref: '#/components/examples/ChangeStatusOfAWebhookRes'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/countries:
x-eb-only: true
get:
tags:
- Reference Data
summary: List available countries and country codes
description: Retrieves a list of countries with their ISO 2-character codes.
operationId: getAllCountries
parameters:
- $ref: '#/components/parameters/token'
responses:
'200':
description: Ok.
content:
application/json:
examples:
ListOfCountries:
$ref: '#/components/examples/ListOfCountries'
schema:
$ref: '#/components/schemas/CountriesResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/country-subdivision:
x-eb-only: true
get:
summary: List available country subdivisions
description: Retrieves a list of subdivisions within a country. For example, the states of the USA.
operationId: getCountrySubdivision
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/countryCode'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/pageNo'
responses:
'200':
description: Ok.
content:
application/json:
examples:
ListOfCountrySubdivision:
$ref: '#/components/examples/ListOfCountrySubdivision'
schema:
$ref: '#/components/schemas/CountrySubdivisionResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
tags:
- Reference Data
/legal-structures:
x-eb-only: true
get:
summary: List legal structures
description: Returns a list of legal structures of a business. To be used when onboarding business clients.
operationId: getLegalStructures
parameters:
- $ref: '#/components/parameters/token'
responses:
'200':
description: Ok.
content:
application/json:
examples:
LegalStructures:
$ref: '#/components/examples/LegalStructures'
schema:
$ref: '#/components/schemas/LegalStructureResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
tags:
- Reference Data
/document-types:
x-eb-only: true
get:
summary: List supporting document-types
description: Returns a list of supporting documents that may be required during onboarding and ongoing checks.
operationId: getDocumentTypes
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/countryCode'
- $ref: '#/components/parameters/documentCategory'
- $ref: '#/components/parameters/legalStructure'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/pageNo'
responses:
'200':
description: Ok.
content:
application/json:
examples:
ListOfAllSupportingDocumentTypes:
$ref: '#/components/examples/ListOfAllSupportingDocumentTypes'
ListOfSupportingDocumentTypesByLegalStructureAsSoleProprietorship:
$ref: '#/components/examples/ListOfSupportingDocumentTypesByLegalStructureAsSoleProprietorship'
ListOfSupportingDocumentTypesByLegalStructureAsCorporation:
$ref: '#/components/examples/ListOfSupportingDocumentTypesByLegalStructureAsCorporation'
ListOfSupportingDocumentTypesByLegalStructureAsLimitedPartnership:
$ref: '#/components/examples/ListOfSupportingDocumentTypesByLegalStructureAsLimitedPartnership'
ListOfSupportingDocumentTypesWhenDocumentCategoryNotIdentityVerification:
$ref: '#/components/examples/ListOfSupportingDocumentTypesWhenDocumentCategoryNotIdentityVerification'
schema:
$ref: '#/components/schemas/DocumentTypesResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
tags:
- Reference Data
/id-types:
x-eb-only: true
get:
summary: List acceptable ID types
description: Returns a list of acceptable types of ID that can be submitted for onboarding or other client checks.
operationId: getIdTypes
parameters:
- $ref: '#/components/parameters/token'
responses:
'200':
description: Ok.
content:
application/json:
examples:
ListOfIdTypes:
$ref: '#/components/examples/ListOfIdTypes'
schema:
$ref: '#/components/schemas/IdentificationTypeResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
tags:
- Reference Data
/industry-categories:
x-eb-only: true
get:
summary: List industry categories and industry types.
description: Returns a list of all industry categories and industry types for business clients. To be used in onboarding and other client checks.
operationId: getClientIndustryCategories
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/pageNo'
responses:
'200':
description: Ok.
content:
application/json:
examples:
IndustryCategoriesAndIndustryTypes:
$ref: '#/components/examples/IndustryCategoriesAndIndustryTypes'
schema:
$ref: '#/components/schemas/IndustryCategoriesResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
tags:
- Reference Data
/products:
x-eb-only: true
get:
summary: List embedded finance products
description: Returns a list of all available Embedded Finance products.
operationId: getRefProducts
parameters:
- $ref: '#/components/parameters/token'
responses:
'200':
description: Ok.
content:
application/json:
examples:
ListOfProducts:
$ref: '#/components/examples/ListOfProducts'
schema:
$ref: '#/components/schemas/ProductResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
tags:
- Reference Data
/business-types:
x-eb-only: true
get:
summary: List business types
description: Returns a list of business types that can be used for client onboarding processes.
operationId: getRefBusinessTypes
parameters:
- $ref: '#/components/parameters/token'
responses:
'200':
description: Ok.
content:
application/json:
examples:
ListOfBusinessTypes:
$ref: '#/components/examples/ListOfBusinessTypes'
schema:
$ref: '#/components/schemas/BusinessTypesResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
tags:
- Reference Data
/job-titles:
x-eb-only: true
get:
summary: List job titles
description: Returns a list of job titles that can be used for client onboarding.
operationId: getRefJobTitles
parameters:
- $ref: '#/components/parameters/token'
responses:
'200':
description: Ok.
content:
application/json:
examples:
ListOfJobTitles:
$ref: '#/components/examples/ListOfJobTitles'
schema:
$ref: '#/components/schemas/JobTitlesResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
tags:
- Reference Data
/party-roles:
x-eb-only: true
get:
summary: List party roles
description: Returns a list of accepted party roles.
operationId: getRefPartyRoles
parameters:
- $ref: '#/components/parameters/token'
responses:
'200':
description: Ok.
content:
application/json:
examples:
ListOfPartyRoles:
$ref: '#/components/examples/ListOfPartyRoles'
schema:
$ref: '#/components/schemas/PartyRolesResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
tags:
- Reference Data
/address-types:
x-eb-only: true
get:
summary: List address types
description: Returns a list of accepted address types.
operationId: getRefAddressTypes
parameters:
- $ref: '#/components/parameters/token'
responses:
'200':
description: Ok.
content:
application/json:
examples:
ListOfAddressTypes:
$ref: '#/components/examples/ListOfAddressTypes'
schema:
$ref: '#/components/schemas/AddressTypesResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
tags:
- Reference Data
/nature-of-ownerships:
x-eb-only: true
get:
summary: List nature of ownership values
description: Returns a list of accepted Nature Of Ownership values.
operationId: getRefNatureOfOwnerships
parameters:
- $ref: '#/components/parameters/token'
responses:
'200':
description: Ok.
content:
application/json:
examples:
ListOfAcceptedNatureOfOwnershipValues:
$ref: '#/components/examples/ListOfAcceptedNatureOfOwnershipValues'
schema:
$ref: '#/components/schemas/NatureOfOwnershipsResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
tags:
- Reference Data
/party-types:
x-eb-only: true
get:
summary: List party types
description: Returns a list of accepted party types.
operationId: getRefPartyTypes
parameters:
- $ref: '#/components/parameters/token'
responses:
'200':
description: Ok.
content:
application/json:
examples:
ListOfAcceptedPartyTypes:
$ref: '#/components/examples/ListOfAcceptedPartyTypes'
schema:
$ref: '#/components/schemas/PartyTypesResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
tags:
- Reference Data
/statements/{id}:
x-eb-only: true
get:
summary: Get a statement
description: Get a statement document using its identifier
operationId: getStatement
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/clientIdInHeaderRequired'
- in: path
name: id
required: true
description: Statement identifier used to find the document.
example: ZjNjMTJjOTctZTQyNy00MWI5LWJmNDAtMDMzYzZiNjliNWJl
schema:
type: string
responses:
'200':
description: Ok.
content:
application/pdf:
schema:
type: string
format: byte
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
tags:
- Statements
/statements/search:
x-eb-only: true
get:
summary: Search statements
description: Returns statements filtered by search criteria.
operationId: searchStatements
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/clientIdInHeaderRequired'
- in: query
name: accountIds
description: |
Account identifiers used to represent client accounts.
required: false
example:
- dc2eda9084bf40b7a1d8baa8c5e0ea0ax
schema:
type: array
items:
type: string
- in: query
name: dateFrom
description: Earliest date in search range. Must be set at least one day earlier than dateTo.
required: true
example: '2022-12-31'
schema:
type: string
- in: query
name: dateTo
description: Latest date in search range. Must be set at least one day later than dateFrom.
required: true
example: '2022-12-31'
schema:
type: string
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/StatementsResponse'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
tags:
- Statements
/transactions:
x-eb-only: true
post:
summary: Create transaction
description: Creates a new transaction, such as a payment via ACH, Wire or Real Time Payments (RTP).
operationId: createTransaction
tags:
- Transactions EB
parameters:
- $ref: '#/components/parameters/token'
requestBody:
required: true
description: Contains the required information to create a payment transaction.
content:
application/json:
schema:
$ref: '#/components/schemas/PostTransactionRequest'
examples:
CreateTransactionPayoutReq:
$ref: '#/components/examples/CreateTransactionPayoutReq'
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponse'
examples:
CreateTransactionPayoutRes:
$ref: '#/components/examples/CreateTransactionPayoutRes'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
get:
summary: List and filter transactions
description: Lists transactions for a specific client, which can be filtered using optional parameters.
operationId: listTransactions
tags:
- Transactions EB
parameters:
- $ref: '#/components/parameters/token'
- in: query
name: transactionType
schema:
$ref: '#/components/schemas/RequestTransactionType'
description: Filters by type of transaction.
required: false
- in: query
name: status
schema:
$ref: '#/components/schemas/RequestTransactionStatus'
description: Filters by transaction status.
required: false
- in: query
name: accountNumber
example: '200293631511'
schema:
type: string
description: Filters by the Embedded Banking client account number connected to the transaction.
required: false
- in: query
name: amountEquals
example: '100'
schema:
type: string
description: Filters by an exact amount.
required: false
- in: query
name: amountGreaterThan
example: '100'
schema:
type: string
description: Filters by amounts greater than a specified value.
required: false
- in: query
name: amountLessThan
example: '100'
schema:
type: string
description: Filters by amounts less than a specified value.
required: false
- in: query
name: dateEquals
example: 01-01-2022
schema:
type: string
description: Filters transactions by an exact date.
required: false
- in: query
name: dateGreaterThan
example: 01-01-2022
schema:
type: string
description: Filters for transactions made after this date.
required: false
- in: query
name: dateLessThan
example: 01-01-2022
schema:
type: string
description: Filters for transactions made before this date.
required: false
- in: query
name: dateTimeGreaterThan
example: '2022-01-01T00:00:00.000Z'
schema:
type: string
format: date-time
description: Filters for transactions made after this date and time.
required: false
- in: query
name: dateTimeLessThan
example: '2022-01-01T00:00:00.000Z'
schema:
type: string
format: date-time
description: Filters for transactions made before this date and time.
- in: query
name: recipientAccount
example: '200293631511'
schema:
type: string
description: Filters by the recipient's account number.
required: false
- in: query
name: transactionId
example: 2451821d-e6f9-450d-b041-a20ae9d08f14
schema:
type: string
description: Filters for a transaction that matches a specific transaction ID. The transaction ID is generated by Embedded Banking when a transaction is created or received.
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/ListTransactionsSearchResponse'
examples:
GetTransactionsRes:
$ref: '#/components/examples/GetTransactionsRes'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/transactions/{id}:
x-eb-only: true
get:
summary: Get transaction
description: Returns details for a specific transaction using its unique identifier.
operationId: getTransaction
tags:
- Transactions EB
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/clientId'
- name: id
in: path
description: Unique identifier for a transaction.
required: true
example: ellr6md9wmndjg
schema:
type: string
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionGetResponse'
examples:
GetTransactionByIdRes:
$ref: '#/components/examples/GetTransactionByIdRes'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/accounts:
get:
summary: List accounts
description: Returns a list of accounts for a specific client.
operationId: getAccounts
parameters:
- $ref: '#/components/parameters/token'
- $ref: '#/components/parameters/clientIdInQuery'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/pageNo'
tags:
- Accounts
responses:
'200':
description: List of accounts for a specific client
content:
application/json:
schema:
$ref: '#/components/schemas/ListAccountsResponse'
examples:
ListAccountsResponse:
$ref: '#/components/examples/ListAccountsResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
post:
summary: Create account
description: Create an account for a specific client
operationId: postAccounts
parameters:
- $ref: '#/components/parameters/token'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAccountRequest'
examples:
CreateAccountRequest:
$ref: '#/components/examples/CreateAccountRequest'
tags:
- Accounts
responses:
'201':
description: Account created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/AccountResponseWithStatus'
examples:
CreateAccountResponse:
$ref: '#/components/examples/CreateAccountResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/accounts/{id}:
get:
summary: Get account
description: Look up a single account by account ID
operationId: getAccount
tags:
- Accounts
parameters:
- $ref: '#/components/parameters/accountIdInPath'
- $ref: '#/components/parameters/token'
responses:
'200':
description: Account details
content:
application/json:
schema:
$ref: '#/components/schemas/AccountResponseWithStatus'
examples:
GetLimitedDdaAccountResponse:
$ref: '#/components/examples/GetLimitedDdaAccountResponse'
GetEmbeddedDdaAccountResponse:
$ref: '#/components/examples/GetEmbeddedDdaAccountResponse'
GetDdaAccountResponse:
$ref: '#/components/examples/GetDdaAccountResponse'
GetProcessingAccountResponse:
$ref: '#/components/examples/GetProcessingAccountResponse'
GetManagementAccountResponse:
$ref: '#/components/examples/GetManagementAccountResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/accounts/{id}/balances:
get:
summary: Get an account balance
description: Get the balance details for an account
operationId: getAccountBalance
tags:
- Accounts
parameters:
- $ref: '#/components/parameters/accountIdInPath'
- $ref: '#/components/parameters/token'
responses:
'200':
description: Account balance details
content:
application/json:
schema:
$ref: '#/components/schemas/AccountBalanceResponse'
examples:
GetAccountBalanceResponse:
$ref: '#/components/examples/GetAccountBalanceResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/balance-holds:
get:
summary: Get balance holds
description: Returns a list of all the holds on an account.
operationId: getBalanceHolds
tags:
- Balance-Holds
parameters:
- $ref: '#/components/parameters/token'
- name: accountId
in: query
description: Account ID
required: true
schema:
type: string
example: dc2eda9084bf40b7a1d8baa8c5e0ea0ax
responses:
'200':
description: A list of holds on the provided account
content:
application/json:
schema:
$ref: '#/components/schemas/ListBalanceHoldGetResponse'
examples:
ListBalanceHoldGetResponse:
$ref: '#/components/examples/ListBalanceHoldGetResponseExample'
'400':
$ref: '#/components/responses/400V2'
'401':
$ref: '#/components/responses/401V2'
'403':
$ref: '#/components/responses/403V2'
'404':
$ref: '#/components/responses/404V2'
'500':
$ref: '#/components/responses/500V2'
'503':
$ref: '#/components/responses/503V2'
/balance-holds/{id}:
get:
summary: Get balance hold
description: Returns details for a specific hold on an account.
operationId: getBalanceHoldsDetails
tags:
- Balance-Holds
parameters:
- $ref: '#/components/parameters/token'
- name: id
in: path
description: Hold ID
example: eeeceb81-5e25-4949-a5bb-a5f7aa8dcf0f
required: true
schema:
type: string
responses:
'200':
description: A specific hold on the provided account
content:
application/json:
schema:
$ref: '#/components/schemas/BalanceHoldGetResponse'
examples:
BalanceHoldGetResponse:
$ref: '#/components/examples/BalanceHoldGetResponseExample'
'400':
$ref: '#/components/responses/400V2'
'401':
$ref: '#/components/responses/401V2'
'403':
$ref: '#/components/responses/403V2'
'404':
$ref: '#/components/responses/404V2'
'500':
$ref: '#/components/responses/500V2'
'503':
$ref: '#/components/responses/503V2'
/billing-configuration:
get:
tags:
- Billing
summary: Get the details of the billing configuration that the client is currently on.
operationId: getBillingClientDetails
parameters:
- $ref: '#/components/parameters/token'
responses:
'200':
description: The details of the current billing configuration the client is on.
content:
application/json:
schema:
$ref: '#/components/schemas/BillingClientDetailsResponse'
examples:
getBillingConfiguration:
$ref: '#/components/examples/getBillingConfiguration'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/payment-intents:
post:
summary: Create payment intent
description: Creates a new payable intent.
operationId: createPaymentIntent
tags:
- Payment Intents
parameters:
- $ref: '#/components/parameters/token'
requestBody:
required: true
description: Contains the required information to create a payment intent.
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentIntentRequest'
examples:
CreatePayableReq:
$ref: '#/components/examples/CreatePayableReq'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentIntent'
examples:
CreatePayableRes:
$ref: '#/components/examples/CreatePayableRes'
'400':
$ref: '#/components/responses/400V2'
'401':
$ref: '#/components/responses/401V2'
'403':
$ref: '#/components/responses/403V2'
'404':
$ref: '#/components/responses/404V2'
'500':
$ref: '#/components/responses/500V2'
'503':
$ref: '#/components/responses/503V2'
get:
summary: List payment intents
description: Lists payment intents for a specific client.
operationId: listPaymentIntents
tags:
- Payment Intents
parameters:
- $ref: '#/components/parameters/token'
- name: recipientId
in: query
description: Recipient ID
required: false
example: a8eb71c9-7bbb-41f2-8d9e-b0f52d1ecd71
schema:
type: string
- name: status
in: query
required: false
example: PENDING
description: Payment intent status
schema:
type: string
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentIntents'
examples:
ListPaymentIntents:
$ref: '#/components/examples/ListPaymentIntents'
'400':
$ref: '#/components/responses/400V2'
'401':
$ref: '#/components/responses/401V2'
'403':
$ref: '#/components/responses/403V2'
'404':
$ref: '#/components/responses/404V2'
'500':
$ref: '#/components/responses/500V2'
'503':
$ref: '#/components/responses/503V2'
/payment-intents/{id}:
get:
summary: Get payment intent
description: Returns details for a specific payment intent using its unique identifier.
operationId: getPaymentIntent
tags:
- Payment Intents
parameters:
- $ref: '#/components/parameters/token'
- name: id
in: path
description: Unique identifier for a payment intent.
required: true
example: 73bd1c1d-6635-43ff-a8e5-b252926bdd9e
schema:
type: string
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentIntent'
'400':
$ref: '#/components/responses/400V2'
'401':
$ref: '#/components/responses/401V2'
'403':
$ref: '#/components/responses/403V2'
'404':
$ref: '#/components/responses/404V2'
'500':
$ref: '#/components/responses/500V2'
'503':
$ref: '#/components/responses/503V2'
post:
summary: Update payment intent
description: Updates details for a specific payment intent using its unique identifier.
operationId: updatePaymentIntent
tags:
- Payment Intents
parameters:
- $ref: '#/components/parameters/token'
- name: id
in: path
description: Unique identifier for a payment intent.
required: true
example: 73bd1c1d-6635-43ff-a8e5-b252926bdd9e
schema:
type: string
requestBody:
required: true
description: Contains the required information to create a payment intent.
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePaymentIntentRequest'
examples:
UpdatePayableReq:
$ref: '#/components/examples/UpdatePayableReq'
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentIntent'
examples:
UpdatePayableRes:
$ref: '#/components/examples/UpdatePayableRes'
'400':
$ref: '#/components/responses/400V2'
'401':
$ref: '#/components/responses/401V2'
'403':
$ref: '#/components/responses/403V2'
'404':
$ref: '#/components/responses/404V2'
'500':
$ref: '#/components/responses/500V2'
'503':
$ref: '#/components/responses/503V2'
x-webhooks:
events:
post:
summary: Embedded Finance Event posted
tags:
- Webhooks
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookCallbackEvent'
responses:
'200':
description: Your server returns this code if it accepts the callback
components:
parameters:
token:
name: token
in: header
description: JWT Client token
required: false
schema:
type: string
minLength: 0
pageSize:
name: limit
in: query
description: Number of records per page.
schema:
type: integer
minimum: 1
maximum: 25
default: 25
pageNo:
name: page
in: query
description: Page Number
schema:
type: integer
default: 0
minimum: 0
clientId:
name: client_id
in: header
description: Unique identifier for a client.
required: false
example: '0030000131'
schema:
type: string
pattern: ^\d{10}$
minLength: 10
maxLength: 10
clientIdInHeaderRequired:
name: client_id
in: header
description: Unique identifier for a client.
required: true
example: '0030000131'
schema:
type: string
pattern: ^\d{10}$
minLength: 10
maxLength: 10
userToken:
x-eb-only: true
name: token
in: header
description: JWT Client token
required: false
schema:
type: string
minLength: 1
maxLength: 3000
userFetchLevel:
x-eb-only: true
name: fetchLevel
in: query
description: |-
Determines the fetch level.
USER_STATUS: Fetches user status from identity provided
PARTY: Fetches party information for user like names, address, phones etc.
ROLES: Fetches user role information
required: false
schema:
type: array
items:
$ref: '#/components/schemas/FetchLevel'
userPageSize:
x-eb-only: true
name: limit
in: query
description: Number of records per page.
schema:
type: integer
minimum: 0
maximum: 25
default: 25
format: int32
userPageNo:
x-eb-only: true
name: page
in: query
description: Page Number
schema:
type: integer
minimum: 0
maximum: 2000
default: 0
format: int32
userId:
x-eb-only: true
name: id
in: path
description: Identifier of the user record.
style: simple
schema:
type: string
example: 94c3a2a3-db3a-4850-a36a-3d27d8a05db0
minLength: 1
maxLength: 50
required: true
userRole:
x-eb-only: true
name: roleId
in: query
description: Role id
required: false
schema:
type: string
pattern: ^[a-zA-Z_]+$
example: AUTH_REP
documentType:
name: type
in: query
description: The type of document. Can be terms and conditions or disclosure and consent documents.
required: true
schema:
type: string
enum:
- TERMS_CONDITION
- DISCLOSURE_AND_CONSENT
debitCardIdInPath:
name: id
in: path
required: true
description: Unique identifier for the debit card.
example: '100000160987'
style: simple
schema:
type: string
clientIdInQuery:
name: clientId
in: query
description: Unique Client identifier
required: false
example: '9000000001'
schema:
type: string
pattern: ^\d{10}$
minLength: 10
maxLength: 10
casesPageSize:
name: limit
in: query
description: Number of records per page.
schema:
type: integer
minimum: 1
casesPageNo:
name: page
in: query
description: Page Number
schema:
type: integer
minimum: 1
countryCode:
name: countryCode
in: query
description: Two-letter ISO code for a country, such as US for USA.
required: false
schema:
type: string
minLength: 2
maxLength: 2
pattern: ^[A-Z]{2}$
example: US
description: ISO 3166-1 Alpha-2 Country Code
documentCategory:
name: documentCategory
in: query
description: Document category type.
required: false
schema:
type: string
enum:
- IDENTITY_VERIFICATION
legalStructure:
name: legalStructure
in: query
description: url encoded legalStructure type.
required: false
schema:
type: string
minLength: 1
maxLength: 50
accountIdInPath:
name: id
in: path
description: Unique account identifier
schema:
type: string
required: true
example: ablim765e14741c5a44acc570af517ab
schemas:
PageMetaData:
type: object
properties:
page:
type: integer
example: 1
description: |
Page Number.
limit:
type: integer
example: 30
description: |
Number of records per page.
total_items:
type: integer
example: 1
description: |
Total number of items.
AddressDto:
type: object
required:
- addressLine1
- city
- countryCode
- postalCode
properties:
addressType:
type: string
example: Principal place of business
description: Type of address e.g. 'Primary Residence' | 'Principal place of business'.
addressLine1:
type: string
pattern: (?=.*\d)(?=.*[A-Za-z])^\d.*$|^[NSEWnsew]\d.*$
maxLength: 34
example: 689 Main St
description: addressLine1 must not be a PO Box and must begin with a number.addressLine1 has a maximum of 34 characters. addressLine1 is mandatory when client is created.
addressLine2:
type: string
pattern: '[\p{L}\p{M}\p{N}\p{P}\p{Z}\p{Cf}\p{Cs}\s]*'
maxLength: 34
example: Opposite St. Andrews Church
description: addressLine2 has a maximum of 34 characters.
addressLine3:
type: string
pattern: '[\p{L}\p{M}\p{N}\p{P}\p{Z}\p{Cf}\p{Cs}\s]*'
maxLength: 34
example: Mini York
description: addressLine3 has a maximum of 34 characters.
city:
type: string
pattern: '[\p{L}\p{M}\p{N}\p{P}\p{Z}\p{Cf}\p{Cs}\s]*'
maxLength: 34
example: Anchorage
description: city has a maximum of 34 characters.
state:
type: string
pattern: ^[a-z-A-Z ]+$
maxLength: 2
example: AZ
description: State code in alpha-2 format. State is mandatory for countries like United States.
postalCode:
type: string
pattern: ^[\\p{IsLatin}0-9- \\.]+$
maxLength: 10
example: '99501'
description: Postal/ZIP code.
countryCode:
type: string
example: US
description: Country code in alpha-2 format.
Phone:
type: object
required:
- countryCode
- phoneNumber
properties:
countryCode:
type: string
minLength: 1
maxLength: 10
pattern: ^(0{2}|\+)?[1-9]{1,3}$
example: '+1'
description: The ISO calling code for the phone number.
phoneNumber:
type: string
minLength: 7
maxLength: 14
pattern: ^[0-9]{7,14}$
example: '7785462944'
description: |
Phone Number Information of the account
IdentityDTO:
type: object
required:
- idType
- idValue
- idIssuer
properties:
idType:
type: string
example: EIN
description: |
IdType denotes the type of taxpayer identification numbers e.g. SSN/EIN. EIN is acceptable idType for Privately Owned Business. Sole Proprietorship can have EIN/SSN as idType. For individuals like Owners and Controllers SSN is accepted as idType. Decision Makers do not require any tax identifier.
idDescription:
type: string
example: Employee Identification Number
description: Description of identification type e.g. Social Security Number
idIssuer:
type: string
example: US
description: Identification issuer country code e.g. US
idValue:
type: string
pattern: '[0-9A-Za-z-]+'
example: '999999999'
description: Value of the identification type. EIN/SSN must be of 9 digits.
PartyDetailCommon:
type: object
properties:
address:
$ref: '#/components/schemas/AddressDto'
phone:
$ref: '#/components/schemas/Phone'
identities:
type: array
items:
allOf:
- $ref: '#/components/schemas/IdentityDTO'
minItems: 0
maxItems: 100
PartyDetailBusiness:
allOf:
- $ref: '#/components/schemas/PartyDetailCommon'
- type: object
properties:
businessType:
type: string
example: Privately Owned Business
description: |
The type of business connected to the client. You can use the Reference Data resource to get a list of acceptable values. Examples include: Privately Owned Business. Sole Proprietorship.
legalStructure:
type: string
example: Limited Liability Company
description: |
Legal Structure of the business entity. Legal structure is required for Privately Owned Business and Sole Proprietorship. Distinct legal structure. e.g. - Limited Liability Company - Corporation - Limited Partnership - Sole Proprietorship
industryCategory:
type: string
example: Accommodation and Food Services
description: |
The industry category of the business connected to the client. For example, Accommodation and Food Services. You can use the Reference Data resource to get a list of acceptable values.
industryType:
type: string
example: Bed And Breakfast Inns
description: |
The industry type of the business connected to the client. You can use the Reference Data resource to get a list of acceptable values.
significantOwnership:
type: boolean
example: true
description: |
Significant ownership means there individuals who own 25% or more of the client's business. Always required for a Privately Owned Business. If Significant Ownership is selected as True, At least one related party should have the role of owner.
entitiesInOwnership:
type: boolean
example: true
description: |
Entities in ownership means that one or more businesses own part of the business conected to the client. Always required for a Privately Owned Business.
businessName:
type: string
pattern: ^(?![-.%/+&@,';:#()_])(?!.*[-.%/+&@,';:#()_]{2})(?!.*[-.%/+&@,';:#()_]$).*$
example: Feltz Printing Service
description: |
The business?s legal name. It is the official name of the person or entity that owns a company. Must be the name used on the client's government forms and business paperwork
businessAliasName:
type: string
example: Feltz Printing Service of New York
description: |
Any alias names for the business connected to the client.
businessDescription:
type: string
example: Printing Service of New York
description: |
The business?s description.
websiteAvailable:
type: boolean
example: true
description: |
Whether or not the business connected to the client has a website.
website:
type: string
pattern: ^((http|https|HTTP|HTTPS):\/\/)?(www.|WWW.)?(?!.*(http|HTTP|https|HTTPS|www.|WWW.))[a-zA-Z0-9_-]+(\.[a-zA-Z]+)+((\/)[\w#]+)*(\/\w+\?[a-zA-Z0-9_]+=\w+(&[a-zA-Z0-9_]+=\w+)*)?\/?$
example: https://www.company.com
description: |
Website of the business connected to the client. Always required if websiteAvailable is true.
email:
type: string
maxLength: 50
pattern: (^$)|(^([^,:;=@"\\\s()\[\]]+)+@([a-zA-Z-0-9-]+\.)+[a-zA-Z]{2,}$)
example: client@company.com
description: |
Email of the client.
countryOfFormation:
type: string
example: US
description: Country code in alpha-2 format
yearOfFormation:
type: string
pattern: ^(19|20)[0-9]+
example: '2020'
description: |
Year of company formation. Max and Min length is 4.
parentClientId:
type: string
description: The parent (platform) relationship owner's ID.
RelatedParty:
allOf:
- $ref: '#/components/schemas/PartyDetailCommon'
- type: object
properties:
businessName:
type: string
pattern: ^(?![-.%/+&@,';:#()_])(?!.*[-.%/+&@,';:#()_]{2})(?!.*[-.%/+&@,';:#()_]$).*$
example: Feltz Printing Service
description: |
The business?s legal name. It is the official name of the person or entity that owns a company. And, it?s the name used on your government forms and business paperwork. This field is only required when party type is NonIndividual
firstName:
type: string
pattern: ^(?![-.',])(?!.*[-.',]{2})(?!.*[-.',]$)[a-zA-Z-.', ]*$
minLength: 2
maxLength: 30
example: Lenna
description: |
First name of the individual in case of party type being an individual like Owners, Controllers and Decision Makers.
middleName:
type: string
pattern: ^(?![-.',])(?!.*[-.',]{2})(?!.*[-.',]$)[a-zA-Z-.', ]*$
maxLength: 30
example: More
description: |
Middle name of the individual in case of party type being an individual.
lastName:
type: string
pattern: ^(?![-.',])(?!.*[-.',]{2})(?!.*[-.',]$)[a-zA-Z-.', ]*$
minLength: 2
maxLength: 30
example: Paprocki
description: |
Last name of the individual in case of party type being an individual like Owners, Controllers and Decision Makers.
jobTitle:
type: string
example: CEO
description: |
Job title in case of party type being an individual. JobTitle is required field for Controllers. Also, If Privately Owned Business is selected as the business type, Job Title should be a required field for Decision Makers. e.g. CEO|CFO|COO|President|Chairman|Senior Branch Manager|Other
jobTitleDescription:
type: string
example: Acting CEO
maxLength: 50
description: |
In case on jobTitle is Other then Job title description is required.
birthDate:
type: string
pattern: ([0-9]{4})-(?:[0-9]{2})-([0-9]{2})
example: '1983-02-08'
description: |
The date of birth (yyyy-MM-dd) of the individual in case of party type being an individual. This field is not required for the party type Organization.
email:
type: string
pattern: (^$)|(^([^,:;=@"'\s()\[\]]+)+@([a-zA-Z-0-9-]+\.)+[a-zA-Z]{2,}$)
maxLength: 50
example: client@company.com
description: |
Email of the individual.
natureOfOwnership:
type: string
example: Direct
description: |
Nature of ownership e.g. Direct|Indirect
soleOwner:
type: boolean
partyType:
type: string
example: Individual
description: |
A Party type which could have one of the following distinct values: Organization, Individual, NonIndividual
partyRole:
type: array
items:
type: string
minItems: 0
maxItems: 100
example:
- CONTROLLER
- OWNER
- DECISION_MAKER
description: |
A Party role which could have one or more of the following values: CLIENT, CONTROLLER, MARKETPLACE_OPERATOR, OWNER, PAYEE, DECISION_MAKER
If a SMB controller and owner is the same person - you have to send two parties with the distinct partyRoles e.g. [ CLIENT, CONTROLLER, MARKETPLACE_OPERATOR, OWNER, DECISION_MAKER ]
RelatedPartyResponse:
allOf:
- $ref: '#/components/schemas/RelatedParty'
- type: object
required:
- id
- partyType
- partyRole
- email
properties:
id:
type: string
example: b98355d9-d193-4f50-9957-c699266b1530
description: |
Individual/NonIndividual client id, as UUID, that uniquely identifies the resource.
status:
type: string
description: Status of the request. Can be active or deleted.
example: active
ClientInformationResponse:
type: object
allOf:
- $ref: '#/components/schemas/PartyDetailBusiness'
- type: object
required:
- id
properties:
id:
type: string
example: 1bd824ef-355d-496d-9272-900cfe4b95f9
description: |
Client ID. The unique identifier for a client.
status:
type: string
description: active | deleted
example: active
products:
type: array
items:
type: string
minItems: 0
maxItems: 100
example:
- EB
description: |
The products available for clients in a jurisdiction.
jurisdiction:
type: string
example: US
description: |
The jurisdiction where the client would be onboarding.
parentClientId:
type: string
description: |
Client ID of the platform entity the client is onboarded to.
enablePayouts:
type: boolean
example: true
description: |
Once KYC has completed and approved, clients will be able to make payments out of their Embedded Bank Account.
This flag will be set to FALSE until this process completes. Only present for clients.
createdAt:
type: string
example: '2021-11-17T10:04:37Z'
description: |
Date the profile was created.
onboardingStatus:
type: string
example: Pending Submission, Review in Progress, Complete
description: The client onboarding status
relatedParties:
type: array
items:
allOf:
- $ref: '#/components/schemas/RelatedPartyResponse'
minItems: 0
maxItems: 100
ListClientInformationResponse:
type: object
properties:
metadata:
$ref: '#/components/schemas/PageMetaData'
items:
type: array
items:
$ref: '#/components/schemas/ClientInformationResponse'
minItems: 0
maxItems: 100
ApiErrorReasonV2:
type: object
required:
- message
properties:
code:
type: string
example: '11000'
description: Short code that identifies the error - publicly cataloged and documented
location:
type: string
enum:
- BODY
- QUERY
- PATH
- HEADER
example: BODY
description: Part of the request which is responsible for the reason
field:
type: string
description: The location of the property or parameter in error
message:
type: string
example: Client with ID 0031234567 does not exist.
description: Message describing the reason. This message can typically be displayed to your platform's users, except in cases specified otherwise
ApiError:
type: object
required:
- title
- httpStatus
- error
properties:
title:
type: string
description: Short humanly-readable title of the error
example: BAD REQUEST
httpStatus:
type: integer
description: HTTP status code
example: 422
traceId:
type: string
description: Internal assigned traced identifier
requestId:
type: string
description: Client provided request identifier
context:
type: array
items:
$ref: '#/components/schemas/ApiErrorReasonV2'
description: Provides additional context and detail on the validation errors
minItems: 0
maxItems: 100
PartyDetailBusinessRequest:
allOf:
- $ref: '#/components/schemas/PartyDetailBusiness'
- type: object
required:
- businessName
EntityDetailBusinessRequest:
allOf:
- $ref: '#/components/schemas/PartyDetailBusinessRequest'
RelatedPartyRequest:
allOf:
- $ref: '#/components/schemas/RelatedParty'
- type: object
required:
- firstName
- lastName
- partyType
- partyRole
- email
RelatedPartiesRequest:
allOf:
- $ref: '#/components/schemas/RelatedPartyRequest'
CreateClientRequest:
type: object
allOf:
- $ref: '#/components/schemas/EntityDetailBusinessRequest'
- type: object
required:
- relatedParties
- products
properties:
relatedParties:
type: array
items:
$ref: '#/components/schemas/RelatedPartiesRequest'
minItems: 0
products:
type: array
items:
type: string
minItems: 0
maxItems: 100
example:
- EB
description: |
The products available for clients in a jurisdiction.
jurisdiction:
type: string
example: US
description: |
The jurisdiction where the client would be onboarding.
UpdateAddressDto:
type: object
required:
- addressLine1
- city
- countryCode
- postalCode
properties:
addressType:
type: string
example: Principle Place Of Business
description: Type of address e.g. 'Primary Residence' | 'Principle Place Of Business'.
addressLine1:
type: string
pattern: (?=.*\d)(?=.*[A-Za-z])^\d.*$|^[NSEWnsew]\d.*$
maxLength: 34
example: 689 Main St
description: addressLine1 must not be a PO Box and must begin with a number.addressLine1 has a maximum of 60 characters.
addressLine2:
type: string
pattern: '[\p{L}\p{M}\p{N}\p{P}\p{Z}\p{Cf}\p{Cs}\s]*'
maxLength: 34
example: Opposite St. Andrews Church
description: addressLine2 has a maximum of 60 characters.This field can be set to empty by passing field value as ("") in request.
addressLine3:
type: string
pattern: '[\p{L}\p{M}\p{N}\p{P}\p{Z}\p{Cf}\p{Cs}\s]*'
maxLength: 34
example: Mini York
description: addressLine3 has a maximum of 60 characters.This field can be set to empty by passing field value as ("") in request.
city:
type: string
pattern: '[\p{L}\p{M}\p{N}\p{P}\p{Z}\p{Cf}\p{Cs}\s]*'
maxLength: 34
example: Anchorage
description: city has a maximum of 30 characters.
state:
type: string
pattern: ^[a-z-A-Z ]+$
maxLength: 2
example: AZ
description: State code in alpha-2 format. State is mandatory for countries like United States.
postalCode:
type: string
pattern: ^[\\p{IsLatin}0-9- \\.]+$
maxLength: 10
example: '99501'
description: Postal/ZIP code.
countryCode:
type: string
example: US
description: Country code in alpha-2 format.
UpdatePhone:
type: object
properties:
countryCode:
type: string
minLength: 1
maxLength: 10
pattern: ^((\+\d{1,3})|(\d{1,4}))$
example: '+1'
description: The ISO calling code for the phone number.
phoneNumber:
type: string
minLength: 7
maxLength: 14
pattern: ^\d{7,14}$
example: '7785462944'
description: |
Phone Number Information of the account
UpdateIdentityDTO:
type: object
required:
- action
- idType
- idIssuer
- idValue
properties:
idType:
type: string
example: EIN
description: |
IdType denotes the type of taxpayer identification numbers e.g. SSN/EIN. EIN is acceptable idType for Privately Owned Business. Sole Proprietorship can have EIN/SSN as idType. For individuals like Owners and Controllers SSN is accepted as idType.
idDescription:
type: string
example: Employee Identification Number
description: Description of identification type e.g. Social Security Number
idIssuer:
type: string
example: US
description: Identification issuer country name e.g. US
idValue:
type: string
example: '999999999'
description: Value of the identification type. EIN/SSN must be of 9 digits.
action:
type: string
example: ADD
description: |
The action like ADD, UPDATE, REMOVE
UpdatePartyDetailCommon:
type: object
properties:
address:
$ref: '#/components/schemas/UpdateAddressDto'
phone:
$ref: '#/components/schemas/UpdatePhone'
identities:
type: array
items:
allOf:
- $ref: '#/components/schemas/UpdateIdentityDTO'
minItems: 0
UpdatePartyDetailBusiness:
allOf:
- $ref: '#/components/schemas/UpdatePartyDetailCommon'
- type: object
properties:
businessType:
type: string
example: Privately Owned Business
description: |
The different business entity types that can be selected e.g. Privately Owned Business | Sole Proprietorship
legalStructure:
type: string
example: LLC
description: |
Legal Structure of the business entity. Legal structure is required for Privately Owned Business and Sole Proprietorship.
industryCategory:
type: string
example: Accommodation and Food Services
description: |
Distinct industry category. e.g. - Accommodation and Food Services - Administrative and Support and Waste Management and Remediation Services - Agriculture, Forestry, Fishing and Hunting (not covered in economic census) - Arts, Entertainment, and Recreation - Construction - Educational Services - Finance and Insurance - Health Care and Social Assistance - Individuals - Information - Management of Companies and Enterprises - Manufacturing - Mining, Quarrying, and Oil and Gas Extraction - Other Services (except Public Administration) - Professional, Scientific, and Technical Services - Public Administration (not covered in economic census) - Real Estate and Rental and Leasing - Retail Trade - Transportation and Warehousing - Utilities - Wholesale Trade
industryType:
type: string
example: Bed And Breakfast Inns
description: |
Industry type.
significantOwnership:
type: boolean
example: true
description: |
Are there any individuals who own 25% or more of your business? e.g. true|false. significantOwnership is required for Privately Owned Business. If Significant Ownership is selected as True, At least one related party should have a role of owner.
entitiesInOwnership:
type: boolean
example: true
description: |
If entitiesInOwnership is true, are there any businesses included in your ownership hierarchy? e.g. true|false. entitiesInOwnership is required for Privately Owned Business.
businessName:
type: string
example: Feltz Printing Service
description: |
The business?s legal name. It is the official name of the person or entity that owns a company.
And, it?s the name used on your government forms and business paperwork
businessAliasName:
type: string
example: Feltz Printing Service of New York
description: |
The business?s alias name. It is the other alias name of the entity that owns a company.This field can be set to empty by passing field value as ("") in request.
businessDescription:
type: string
example: Printing Service of New York
description: |
The business?s description.
websiteAvailable:
type: boolean
example: true
description: |
Does your business have a website? e.g. true|false
website:
type: string
example: https://www.company.com
description: |
Website of the client. website is required if websiteAvailable is true.This field can be set to empty by passing field value as ("") in request.
email:
type: string
maxLength: 50
example: client@company.com
description: |
Email of the client.
countryOfFormation:
type: string
example: US
description: Country code in alpha-2 format
yearOfFormation:
type: string
example: '2020'
description: |
Year of formation. Max and Min length is 4.
UpdateEntityDetailBusinessRequest:
type: object
allOf:
- $ref: '#/components/schemas/UpdatePartyDetailBusiness'
- type: object
properties:
id:
type: string
example: '1234567891'
description: |
Client id, that uniquely identifies the client.
UpdateRelatedPartyRequest:
allOf:
- $ref: '#/components/schemas/UpdatePartyDetailCommon'
- type: object
properties:
id:
type: string
example: f773b9c1-13e5-4e5a-b055-def345eb85d0
description: |
Unique identifier for this party. It is only required for UPDATE and REMOVE actions
businessName:
type: string
example: Feltz Printing Service
description: |
The business?s legal name. It is the official name of the person or entity that owns a company. And, it?s the name used on your government forms and business paperwork. This field is only required when party type is NON-IND
firstName:
type: string
minLength: 2
maxLength: 30
example: Lenna
description: |
First name of the individual in case of party type being an individual like Owners, Controllers and Decision Makers.
middleName:
type: string
maxLength: 30
example: More
description: |
Middle name of the individual in case of party type being an individual.This field can be set to empty by passing field value as ("") in request.
lastName:
type: string
minLength: 2
maxLength: 30
example: Paprocki
description: |
Last name of the individual in case of party type being an individual like Owners, Controllers and Decision Makers.
jobTitle:
type: string
example: CEO
description: |
Job title in case of party type being an individual. JobTitle is required field for Controllers. Also, If Privately Owned Business is selected as the business type, Job Title should be a required field for Decision Makers. e.g. CEO|CFO|COO|President|Chairman|Senior Branch Manager|Other
jobTitleDescription:
type: string
example: Acting CEO
maxLength: 50
description: |
In case on jobTitle is Other then Job title description is required.This field can be set to empty by passing field value as ("") in request.
birthDate:
type: string
example: '1983-02-08'
description: |
The date of birth (yyyy-MM-dd) of the individual in case of party type being an individual. This field is not required for the party type Organization.
email:
type: string
example: client@company.com
description: |
Email of the individual.
natureOfOwnership:
type: string
example: Direct
description: |
Nature of ownership e.g. Direct|Indirect.This field can be set to empty by passing field value as ("") in request.
soleOwner:
type: boolean
partyType:
type: string
example: Individual
description: |
A Party type which could have one of the following distinct values: Organization, Individual, NonIndividual
partyRole:
type: array
items:
type: string
example:
- CONTROLLER
- OWNER
description: |
A Party role which could have one or more of the following values: CLIENT, CONTROLLER, MARKETPLACE_OPERATOR, OWNER, PAYEE, DECISION_MAKER
If a SMB controller and owner is the same person - you have to send two parties with the distinct partyRoles e.g. [ CLIENT, CONTROLLER, MARKETPLACE_OPERATOR, OWNER, DECISION_MAKER ]
minItems: 0
maxItems: 100
UpdateRelatedPartiesRequest:
allOf:
- $ref: '#/components/schemas/UpdateRelatedPartyRequest'
- type: object
required:
- action
properties:
action:
type: string
example: ADD
description: |
The action like ADD, UPDATE, REMOVE
UpdateClientRequest:
type: object
allOf:
- $ref: '#/components/schemas/UpdateEntityDetailBusinessRequest'
- type: object
properties:
relatedParties:
type: array
items:
$ref: '#/components/schemas/UpdateRelatedPartiesRequest'
minItems: 0
UpdateRelatedPartiesResponse:
type: object
allOf:
- $ref: '#/components/schemas/UpdateRelatedPartyRequest'
- type: object
required:
- id
properties:
id:
type: string
example: '1234567891'
description: |
Client id, that uniquely identifies the client.
UpdateClientResponse:
type: object
allOf:
- $ref: '#/components/schemas/UpdateEntityDetailBusinessRequest'
- type: object
properties:
relatedParties:
type: array
items:
$ref: '#/components/schemas/UpdateRelatedPartiesResponse'
minItems: 0
products:
type: array
items:
type: string
example:
- EP
description: |
The products available for clients.
minItems: 0
VerificationIdResponse:
type: object
properties:
id:
type: string
example: A01148
description: The unique identifier for a personal identification verification.
label:
type: string
example: 'Total annual revenue/income: Fiscal Year End Date'
description: verification question.
AnswerOption:
type: object
properties:
id:
type: string
example: CUB
description: Internal id value, not to be shared with user
label:
type: string
example: Cuba
description: External readable value to be presented to the user.
AnswerResponse:
type: object
properties:
values:
type: array
items:
type: string
example:
- CUB
- SYR
description: |
The answer/s of a question. Can contain one or more elements.
minItems: 0
updatedDateTime:
type: string
example: '2022-05-17T12:24:09'
description: date time of submission in ISO format yyyy-MM-ddTHH:mm:ss
format:
type: string
example: list
description: Can be single for one item in the values or list in case of more than one values. The other options are word, freeText, alphaNumeric and there will be only one element allowed
maxLength:
type: integer
format: int64
example: 255
description: max length allowed in values field. In case of freeText, the maximum length is 2000
parentId:
type: string
example: A00033
description: Id of parent Question
answerOptions:
type: array
items:
$ref: '#/components/schemas/AnswerOption'
minItems: 0
VerificationResponse:
type: object
properties:
verification:
$ref: '#/components/schemas/VerificationIdResponse'
response:
$ref: '#/components/schemas/AnswerResponse'
VerificationsResponse:
allOf:
- $ref: '#/components/schemas/VerificationResponse'
AttestationResponse:
type: object
properties:
fullName:
type: string
example: Rob Allen
description: ' First and last name of the attester.'
ipAddress:
type: string
example: 192.168.0.1
description: ' Attested IP address'
attestationDateTime:
type: string
example: '2022-05-17T12:24:09'
description: date time of submission in ISO format yyyy-MM-ddTHH:mm:ss
documentType:
type: string
example: DISCLOSURE_AND_CONSENT OR TERMS_CONDITION
description: The type of document. Can be terms and conditions or disclosure and consent documents.
documentId:
type: string
example: 122b4c2e-4442-408e-a29f-8568bf59099e
description: Unique identifier of the legal document that must be attested by the user. For example, terms & conditions or disclosure & consent documents.
documentVersion:
type: string
example: v1.0
description: Document version
documentName:
type: string
example: terms_condition-eb-petsy-1.pdf
description: Name of the document
AttestationsResponse:
allOf:
- $ref: '#/components/schemas/AttestationResponse'
AdditionalDocument:
type: object
properties:
partyId:
type: string
example: 122b4c2e-4442-408e-a29f-8568bf59099e
description: Related Party id
status:
type: string
example: REQUESTED
description: Status of the document. REQUESTED means the document needs to be provided
documentLevel:
type: string
example: Primary
description: Identity documents level - The category of document which is predefined. Primary is one of the categories and has some limited set of applicable documents.
documentId:
type: string
example: 122b4c2e-4442-408e-a29f-8568bf59099e
description: Unique identifier of the document which user uploaded
partyType:
type: string
example: Organization
description: Specifies the party type, for Legal Entity it is Organization and for Related party e.g. Owner/Controller etc. it is Individual
numberOfDaysRemainingToUpload:
type: string
example: '30'
description: 'Specifies number of days remaining to upload documents '
documentType:
type: string
example: Social Security Card
description: Specifies type of the document uploaded
supportedDocuments:
type: array
items:
type: string
description: List of supported documents which client can choose to upload
minItems: 0
maxItems: 100
AdditionalDocuments:
allOf:
- $ref: '#/components/schemas/AdditionalDocument'
ClientVerificationsInformationResponse:
type: object
properties:
status:
type: string
example: PENDING_VALIDATION
description: If the status is present in the response, verifications are submitted for the client
verifications:
type: array
items:
$ref: '#/components/schemas/VerificationsResponse'
minItems: 0
attestations:
type: array
items:
$ref: '#/components/schemas/AttestationsResponse'
minItems: 0
additionalDocuments:
type: array
items:
$ref: '#/components/schemas/AdditionalDocuments'
minItems: 0
VerificationIdRequest:
type: object
required:
- id
properties:
id:
type: string
example: A01148
description: The unique identifier for a personal identification verification.
AnswerRequest:
type: object
required:
- values
properties:
values:
type: array
items:
type: string
example:
- CUB
- SYR
description: |
The answer/s of a question. Can contain one or more elements. In case where response options are provided, it has to be the id/s depending on single or list format. In case of other formats e.g. freeText, there can be only one element.
minItems: 0
maxItems: 100
VerificationRequest:
type: object
required:
- verification
- response
properties:
verification:
$ref: '#/components/schemas/VerificationIdRequest'
response:
$ref: '#/components/schemas/AnswerRequest'
VerificationsRequest:
allOf:
- $ref: '#/components/schemas/VerificationRequest'
AttestationRequest:
type: object
required:
- fullName
- ipAddress
- documentId
properties:
fullName:
type: string
example: Rob Allen
description: ' First and last name of the attester.'
ipAddress:
type: string
example: 192.168.0.1
description: ' Attested IP address'
documentId:
type: string
example: 122b4c2e-4442-408e-a29f-8568bf59099e
description: Unique identifier of the legal document that must be attested by the user. For example, terms & conditions or disclosure & consent documents.
AttestationsRequest:
allOf:
- $ref: '#/components/schemas/AttestationRequest'
ClientVerificationsInformationRequest:
type: object
properties:
verifications:
type: array
items:
$ref: '#/components/schemas/VerificationsRequest'
minItems: 0
attestations:
type: array
items:
$ref: '#/components/schemas/AttestationsRequest'
minItems: 0
FetchLevel:
type: string
enum:
- USER_STATUS
- PARTY
- ROLES
schemas-Phone:
type: object
required:
- countryCode
- phoneNumber
properties:
countryCode:
type: string
minLength: 1
maxLength: 10
pattern: ^((\+\d{1,3})|(\d{1,4}))$
example: '+1'
description: The ISO calling code for the phone number.
phoneNumber:
type: string
minLength: 4
maxLength: 15
pattern: ^\d{1,15}$
example: '7785462944'
description: |
Phone Number Information of the user
AddressType:
type: string
example: Principal place of business
description: Type of address e.g. 'Primary Residence' | 'Principal place of business'.
enum:
- Principal place of business
- Local office
- Primary Residence
- Business street address
Address:
type: object
required:
- addressLine1
- city
- state
- countryCode
- postalCode
properties:
addressType:
$ref: '#/components/schemas/AddressType'
addressLine1:
type: string
pattern: (?=.*\d)(?=.*[A-Za-z])^\d.*$|^[NSEWnsew]\d.*$
maxLength: 34
example: 689 Main St
description: addressLine1 must not be a PO Box and must begin with a number.addressLine1 has a maximum of 60 characters.
addressLine2:
type: string
pattern: '[\p{L}\p{M}\p{N}\p{P}\p{Z}\p{Cf}\p{Cs}\s]*'
maxLength: 34
example: Opposite St. Andrews Church
description: addressLine2 has a maximum of 60 characters.
addressLine3:
type: string
pattern: '[\p{L}\p{M}\p{N}\p{P}\p{Z}\p{Cf}\p{Cs}\s]*'
maxLength: 34
example: Mini York
description: addressLine3 has a maximum of 60 characters.
city:
type: string
pattern: '[\p{L}\p{M}\p{N}\p{P}\p{Z}\p{Cf}\p{Cs}\s]*'
maxLength: 34
example: Anchorage
description: city has a maximum of 30 characters.
state:
type: string
pattern: ^[a-z-A-Z ]+$
maxLength: 30
example: AZ
description: State code in alpha-2 format.
postalCode:
type: string
pattern: ^[\\p{IsLatin}0-9- \\.]+$
maxLength: 10
example: '99501'
description: Postal/ZIP code.
countryCode:
type: string
example: US
description: Country code in alpha-2 format.
BaseUser:
type: object
properties:
username:
type: string
minLength: 5
maxLength: 30
example: me@chase21
pattern: ^(?=.{6,30}$)(?![_.@])(?!.*[_.@]{2})[a-zA-Z0-9._@]+(?