Bakkt Partner Party Funding API
The Partner Party Funding API from Bakkt — 5 operation(s) for partner party funding.
The Partner Party Funding API from Bakkt — 5 operation(s) for partner party funding.
openapi: 3.0.0
info:
title: Bakkt Crypto Solutions Accounts Partner Party Funding API
version: '2.0'
description: The Bakkt Crypto Solutions API is a REST-based API that provides a platform for clients, so their investors can purchase, hold, sell, and transfer digital assets. Clients must have authorization to use the APIs, secure endpoints, and facilities to ensure safe, fast execution and tracking of orders. Users must specify all date and time units using epoch time in UTC. The URL path includes a version number to indicate major versions which retain backward compatibility to other URLs with the same version prefix. This document is reconstructed by the API Evangelist enrichment pipeline from the per-endpoint OpenAPI fragments Bakkt publishes on its ReadMe developer hub (bakkt.readme.io); it merges the Crypto Solutions (/apex-crypto/api/v2) and Fiat/Partner (/partner/v1) endpoint families.
termsOfService: https://bakkt.com/user-agreement
contact:
name: Bakkt User Account Agreement
url: https://bakkt.com/user-agreement
servers:
- url: https://api.bakkt.com
description: Bakkt API gateway (dedicated per-client, IP-whitelisted; base paths /apex-crypto/api/v2 and /partner/v1)
tags:
- name: Partner Party Funding
paths:
/partner/v1/partner/{partnerId}/party/{partnerPartyRef}/wire-instructions:
get:
tags:
- Partner Party Funding
summary: Generate inbound wire instructions
description: Generate end user specific inbound wire instructions for fiat deposit. Reponse not to be cached. Bank instructions may change over time.
operationId: generateWireInstructions
parameters:
- name: partnerId
in: path
required: true
schema:
type: string
format: uuid
- name: partnerPartyRef
in: path
required: true
schema:
type: string
responses:
'200':
description: Request Accepted
content:
'*/*':
schema:
$ref: '#/components/schemas/WireInstructionsResponse'
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/PublicApiError'
/partner/v1/partner/{partnerId}/party/{partnerPartyRef}/fiatAccount/balance:
get:
tags:
- Partner Party Funding
summary: Retrieve Fiat Account Balance
description: Retrieve the fiat account balance of a consumer
operationId: getFiatAccountBalance
parameters:
- name: partnerId
in: path
required: true
schema:
type: string
format: uuid
- name: partnerPartyRef
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json;charset=UTF-8:
schema:
type: array
items:
$ref: '#/components/schemas/GetFiatAccountBalanceResponse'
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/PublicApiError'
/partner/v1/partner/{partnerId}/party/{partnerPartyRef}/bankAccountLinking/ach:
post:
tags:
- Partner Party Funding
summary: Add Bank Account - ACH
operationId: linkBankAccountAchAsync
parameters:
- name: partnerId
in: path
required: true
schema:
type: string
format: uuid
- name: partnerPartyRef
in: path
required: true
schema:
type: string
- name: Authorization
in: header
required: true
schema:
type: string
requestBody:
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/LinkBankAccountAchRequest'
required: true
responses:
'200':
description: OK
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/LinkBankAccountAchResponse'
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/PublicApiError'
/partner/v1/partner/{partnerId}/party/{partnerPartyRef}/transfer:
post:
tags:
- Partner Party Funding
summary: Deposit or withdraw funds
description: Initiate deposit or withdraw on behalf of the consumer on linked fiat account.
operationId: transferFiatCurrency
parameters:
- name: partnerId
in: path
required: true
schema:
type: string
format: uuid
- name: partnerPartyRef
in: path
required: true
schema:
type: string
requestBody:
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/TransferRequest'
required: true
responses:
'200':
description: Request Accepted
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/PublicApiError'
/partner/v1/partner/{partnerId}/party/{partnerPartyRef}/bankAccountLinking/unlink:
post:
tags:
- Partner Party Funding
summary: Unlink fiat Account
operationId: unlinkBankAccount
parameters:
- name: partnerId
in: path
required: true
schema:
type: string
format: uuid
- name: partnerPartyRef
in: path
required: true
schema:
type: string
- name: Authorization
in: header
required: true
schema:
type: string
- name: x-tracking-id
in: header
required: false
schema:
type: string
format: uuid
requestBody:
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/UnlinkBankAccountRequest'
required: true
responses:
'200':
description: OK
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/UnlinkBankAccountResponse'
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/PublicApiError'
components:
schemas:
TransferRequest:
type: object
required:
- amount
- currency
- fiatTransactType
- idempotencyKey
- instrumentType
- partnerTransactionRef
properties:
amount:
type: number
format: double
currency:
type: string
enum:
- USD
fiatTransactType:
type: string
enum:
- DEPOSIT
- WITHDRAW
idempotencyKey:
type: string
instrumentType:
type: string
enum:
- ACH
- DEBIT
- WIRE
partnerTransactionRef:
type: string
wireWithdrawDetails:
$ref: '#/components/schemas/WireWithdrawDetails'
GetFiatAccountBalanceResponse:
required:
- partnerPartyRef
- currency
- settledAmount
- unsettledAmount
type: object
properties:
partnerPartyRef:
type: string
description: The Partner's primary key for this Party
example: b9e930d0-372a-48f0-9c04-fd51c58eafb6
currency:
type: string
description: Currency of the settled and unsettled amounts
example: USD
settledAmount:
type: number
description: Settled Fiat Account balance
example: 50.01
unsettledAmount:
type: number
description: Unsettled Fiat Account balance
example: 100.01
UnlinkBankAccountRequest:
required:
- instrumentType
- partnerTransactionRef
type: object
properties:
instrumentType:
type: string
enum:
- ACH
- DEBIT
- TPJ
- WIRE
partnerTransactionRef:
maxLength: 255
minLength: 0
type: string
LinkBankAccountAchRequest:
required:
- accountNumber
- accountType
- partnerTransactionRef
- routingNumber
type: object
properties:
accountNumber:
type: string
accountType:
type: string
partnerTransactionRef:
maxLength: 255
minLength: 0
type: string
routingNumber:
type: string
PublicApiError:
type: object
properties:
description:
type: string
description: Message from the exception
example: Parameter passed for field is not meeting its required format.
detail:
type: string
description: Description of the type
example: validation error
details:
type: array
items:
$ref: '#/components/schemas/PublicApiErrorDetail'
type:
type: string
example: INVALID_FIELD_VALUE
LinkBankAccountAchResponse:
type: object
properties:
success:
type: boolean
WireInstructionsResponse:
type: object
required:
- wireReferenceNumber
- wireRoutingNumber
- wireAccountNumber
- wireSwiftCode
- wireBankName
- wireBankAddress
- wireBeneficiaryName
- wireBeneficiaryAddress
properties:
wireReferenceNumber:
type: string
wireRoutingNumber:
type: string
wireAccountNumber:
type: string
wireSwiftCode:
type: string
wireBankName:
type: string
wireBankAddress:
type: string
wireBeneficiaryName:
type: string
wireBeneficiaryAddress:
type: string
UnlinkBankAccountResponse:
type: object
properties:
success:
type: boolean
WireWithdrawDetails:
type: object
properties:
wireRoutingNumber:
type: string
wireAccountNumber:
type: string
wireBankName:
type: string
wireBankAddress:
type: string
wireSwiftCode:
type: string
PublicApiErrorDetail:
type: object
properties:
description:
type: string
description: Human readable error description
example: Validation Error.
field:
type: string
example: id
rejectedValue:
type: object
example: i-am-not-a-uuid
type:
type: string
example: VALIDATION_ERROR