openapi: 3.2.0 info: description: Endpoints that handle sensitive data in Banyan's systems title: Banyan Sensitive Data Vault Consent API version: 1.0.3 servers: - url: https://vault.banyan.com security: - bearerToken: [] tags: - name: Consent paths: /v1/consent/: post: description: 'Creates a consent record for a consumer or updates an existing one. The consent record will be associated with the last provided email and phone number for the consumer. The consent decision log will reflect the history of decisions sent in for that consumer.' operationId: create-consent requestBody: content: application/json: schema: items: $ref: '#/components/schemas/ConsentIngressJSON' type: array description: The consent record(s). required: true responses: '201': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/CreateConsentRecordIDJSON' minItems: 1 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' type: array request_id: format: uuid type: string required: - data - errors type: object description: The Banyan Consent IDs. '400': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: The request was malformed. '401': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: Bearer token expired or not correct. '403': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: Partner does not have permissions for resource '408': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: Request timeout '413': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: Request body is too large (4MiB limit) '500': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: Internal server error summary: Create or update a consent tags: - Consent /v1/consent/search: post: description: Search for a Banyan Consent ID. operationId: search-consent requestBody: content: application/json: schema: $ref: '#/components/schemas/FindConsentInputJSON' description: The search. required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/FindConsentOutputJSON' description: The results. '400': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: The request was malformed. '401': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: Bearer token expired or not correct. '403': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: Partner does not have permissions for resource '404': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: The consent record was not found. '408': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: Request timeout '413': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: Request body is too large (4MiB limit) '500': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: Internal server error summary: Search for a Banyan Consent ID tags: - Consent /v1/consent/{byn_consent_id}: get: description: Retrieve a consent record by Banyan Consent ID. operationId: get-consent parameters: - description: The Banyan Consent ID to append to. in: path name: byn_consent_id required: true schema: format: uuid type: string responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/ConsentEgressJSON' minItems: 1 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' type: array request_id: format: uuid type: string required: - data - errors type: object description: The consent record. '400': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: The request was malformed. '401': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: Bearer token expired or not correct. '403': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: Partner does not have permissions for resource '404': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: The consent record was not found. '408': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: Request timeout '413': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: Request body is too large (4MiB limit) '500': content: application/json: schema: properties: data: items: {} maxItems: 0 type: array errors: items: $ref: '#/components/schemas/ErrorJSON' minItems: 1 type: array request_id: format: uuid type: string required: - data - errors type: object description: Internal server error summary: Retrieve a Consent record by Banyan Consent ID tags: - Consent components: schemas: ValidationJSON: properties: field: description: The field that failed validation. type: string message: description: A human readable message describing the validation error. type: string value: $ref: '#/components/schemas/FieldTypesJSON' required: - field - message type: object ConsentAction: enum: - grant - revoke type: string CreateConsentRecordIDJSON: properties: byn_consent_id: format: uuid type: string required: - byn_consent_id type: object ConsentIngressJSON: properties: consumer_email: description: The email address of the consumer type: string consumer_phone: description: The phone number of the consumer type: string finx_consumer_token: type: string log: description: The log of consumer consent decisions items: $ref: '#/components/schemas/ConsentDecisionIngressJSON' type: array merchant_partner_id: type: integer required: - merchant_partner_id - finx_consumer_token - log type: object FindConsentInputJSON: properties: consumer_email: type: string consumer_phone: type: string finx_consumer_token: type: string finx_partner_id: type: integer type: object FindConsentOutputJSON: properties: byn_consent_id: format: uuid type: string required: - byn_consent_id type: object ConsentType: enum: - talk to support type: string ConsentEgressJSON: properties: byn_consent_id: description: The Banyan ID generated for the consent example: 218823ba-3fec-483b-8803-8c04f7e10d7f format: uuid type: string finx_consumer_token: type: string finx_partner_id: type: integer log: description: The log of consumer consent decisions items: $ref: '#/components/schemas/ConsentDecisionEgressJSON' type: array merchant_partner_id: type: integer required: - byn_consent_id - finx_partner_id - merchant_partner_id - finx_consumer_token - log type: object ErrorJSON: properties: key: additionalProperties: description: A map of id field to id identifying the object the error is about. type: string type: object message: description: A human readable message describing the error. type: string validations: items: $ref: '#/components/schemas/ValidationJSON' type: array required: - message title: Error type: object ConsentDecisionEgressJSON: properties: action: $ref: '#/components/schemas/ConsentAction' consent_type: $ref: '#/components/schemas/ConsentType' created_ts: format: date-time type: string reason: type: string required: - consent_type - action - created_ts type: object FieldTypesJSON: anyOf: - format: binary title: Binary Field type: string - title: Boolean Field type: boolean - format: binary maxLength: 1 minLength: 1 title: Byte Field type: string - title: Integer Field type: integer - format: int32 title: Integer32 Field type: integer - format: int64 title: Integer64 Field type: integer - format: double title: Double Field type: number - format: uuid title: Banyan ID type: string - format: uri title: URI type: string - format: date-time title: Timestamp type: string - format: decimal minLength: 1 title: Amount type: string ConsentDecisionIngressJSON: properties: action: $ref: '#/components/schemas/ConsentAction' consent_type: $ref: '#/components/schemas/ConsentType' reason: type: string required: - consent_type - action type: object securitySchemes: bearerToken: flows: clientCredentials: refreshUrl: /oauth/refresh scopes: {} tokenUrl: /oauth/token type: oauth2 x-provenance: method: searched source: https://developers.banyan.com/reference harvested: '2026-10-14' tool: harvest-readme-openapi.py note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored. assembled_from: - https://developers.banyan.com/reference/create-consent.md - https://developers.banyan.com/reference/get-consent.md - https://developers.banyan.com/reference/search-consent.md merge: pages: 3 deduped: 10 conflicts_kept_first: 0