openapi: 3.0.3 info: title: Astrada bank-accounts network-bulk-feeds API version: '2024-02-28' contact: email: developer@astrada.co description: 'Welcome to our API Reference. 👋 ' servers: - url: https://api.astrada.co security: null tags: - name: network-bulk-feeds description: Network bulk feed resource paths: /network-bulk-feeds: post: tags: - network-bulk-feeds summary: Create network bulk feed description: Registers a new feed for network bulk security: - main-auth: - network-bulk-feeds:write operationId: CreateNetworkBulkFeed requestBody: required: true content: application/json: schema: allOf: - type: object properties: networkReference: description: 'The identifier associated with the card network''s bulk enrollment feed. For Amex, this field should contain the Recipient ID in the following format ''R{RecipientId}'', such as ''R123456''. For Mastercard, this field should contain the Delivery ID. For Visa-VBDS, this field should contain the RPIC in the following format ''RegionId_ProcessorId_IssuerId_CompanyId'', such as ''123_456_789_1''. For Visa-VCF, this field should contain the PIC in the following format ''ProcessorId_IssuerId_CompanyId'', such as ''123_45_6789''. For more details on our bulk enrollment process, refer to [this guide](https://docs.astrada.co/docs/network-bulk-enrollment). ' type: string subaccountId: description: The subaccount identifier type: string format: uuid expectedCardCount: description: 'The expected number of cards that will be enrolled under this bulk feed. Optional. When provided, the value is echoed back on the response and on the `networkbulkfeed.statechanged` webhook payload. ' type: integer minimum: 1 maximum: 1000000 newCards: description: 'Sandbox only. The number of synthetic Visa cards to create when this bulk feed is created in the sandbox environment. The cards are drawn from Astrada''s published sandbox Visa test-card pool. Only valid for `network: VISA`. Requests containing this field outside the sandbox environment, or for other networks, are rejected with a 400. ' type: integer minimum: 1 maximum: 20 default: 5 required: - networkReference - network - subaccountId - oneOf: - type: object properties: network: description: The network that the feed belongs type: string enum: - AMEX type: description: The type of card network's bulk enrollment feed type: string enum: - GL default: GL required: - network - type: object properties: network: description: The network that the feed belongs type: string enum: - MASTERCARD type: description: The type of card network's bulk enrollment feed type: string enum: - SMARTDATA default: SMARTDATA required: - network - type: object properties: network: description: The network that the feed belongs type: string enum: - VISA type: description: The type of card network's bulk enrollment feed type: string enum: - VBDS - VCF default: VBDS required: - network examples: Create Network Bulk Feed Request Example (Amex): value: networkReference: R123456 network: AMEX subaccountId: 24c4f90d-ab3b-4f6e-8a1d-d251a4fcf34c Create Network Bulk Feed Request Example (Mastercard): value: networkReference: G1234567 network: MASTERCARD subaccountId: 24c4f90d-ab3b-4f6e-8a1d-d251a4fcf34c Create Network Bulk Feed Request Example (Visa): value: networkReference: 119999789452 network: VISA type: VBDS subaccountId: 24c4f90d-ab3b-4f6e-8a1d-d251a4fcf34c Create Network Bulk Feed Request Example (Visa, sandbox synthetic cards): value: networkReference: 119999789452 network: VISA type: VBDS subaccountId: 24c4f90d-ab3b-4f6e-8a1d-d251a4fcf34c newCards: 5 responses: '201': description: Resource created content: application/hal+json: schema: $ref: '#/components/schemas/network-bulk-feeds' examples: Example Create Network Bulk Feed Response: $ref: '#/components/examples/network-bulk-feeds' '400': $ref: '#/components/responses/bad-request' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '409': $ref: '#/components/responses/conflict' '500': $ref: '#/components/responses/server-error' get: parameters: - $ref: '#/components/parameters/network-reference' - $ref: '#/components/parameters/subaccount-id' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' tags: - network-bulk-feeds summary: List network bulk feed description: 'Returns all network bulk feeds under the account. By default, `GET /network-bulk-feeds` returns network bulk feeds ordered by the latest `createdAt`. This endpoint supports [offset-based pagination](https://docs.astrada.co/reference/pagination). ' security: - main-auth: - network-bulk-feeds:read operationId: ListNetworkBulkFeeds responses: '200': description: Successful operation content: application/hal+json: schema: type: object required: - _links - _embedded - totalItems properties: _links: type: object required: - self properties: self: $ref: '#/components/schemas/link' first: $ref: '#/components/schemas/link' next: $ref: '#/components/schemas/link' prev: $ref: '#/components/schemas/link' last: $ref: '#/components/schemas/link' _embedded: type: object required: - networkBulkFeeds properties: networkBulkFeeds: type: array items: $ref: '#/components/schemas/network-bulk-feeds' totalItems: type: integer description: Total number of network bulk feeds examples: Example List Network Bulk feeds Response: value: _links: self: href: /network-bulk-feeds _embedded: networkBulkFeeds: - _links: self: href: /network-bulk-feeds/75ea3c99-6bf5-4b16-8f68-0cdc43d75806 id: 75ea3c99-6bf5-4b16-8f68-0cdc43d75806 subaccountId: f297d659-c13d-4219-aeaa-e10a845140a5 network: MASTERCARD networkReference: G1234567 state: submitted type: SMARTDATA createdAt: '2024-12-19T14:45:00Z' updatedAt: '2024-12-19T14:45:00Z' - _links: self: href: /network-bulk-feeds/c73f2da7-aa1f-4775-ad38-864b1b6f3162 id: c73f2da7-aa1f-4775-ad38-864b1b6f3162 subaccountId: 29cb4277-b812-4137-b008-e0befa8c6a47 network: MASTERCARD networkReference: G1234567 state: submitted type: SMARTDATA createdAt: '2024-10-19T14:45:00Z' updatedAt: '2024-10-19T14:45:00Z' - _links: self: href: /network-bulk-feeds/a3b1c2d4-5e6f-7890-abcd-ef1234567890 id: a3b1c2d4-5e6f-7890-abcd-ef1234567890 subaccountId: f297d659-c13d-4219-aeaa-e10a845140a5 network: VISA networkReference: 119999789452 state: failed type: VBDS errorReason: 'Starter data ingestion failed: invalid RPIC configuration' createdAt: '2024-12-19T14:45:00Z' updatedAt: '2024-12-20T10:30:00Z' totalItems: 3 No network bulk feeds found: value: _links: self: href: /network-bulk-feeds _embedded: networkBulkFeeds: [] totalItems: 0 '400': $ref: '#/components/responses/bad-request' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '500': $ref: '#/components/responses/server-error' /network-bulk-feeds/{networkBulkFeedId}: parameters: - $ref: '#/components/parameters/network-bulk-feed-id' get: tags: - network-bulk-feeds summary: Retrieve a network bulk feed description: Returns detailed information about a specific network bulk feed by its identifier. security: - main-auth: - network-bulk-feeds:read operationId: GetNetworkBulkFeed responses: '200': description: Successful operation content: application/hal+json: schema: $ref: '#/components/schemas/network-bulk-feeds' examples: Example Get Network Bulk Subscription Response: $ref: '#/components/examples/network-bulk-feeds' Example Get Failed Network Bulk Subscription Response (VISA): $ref: '#/components/examples/network-bulk-feeds-failed' '400': $ref: '#/components/responses/bad-request' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/not-found' '500': $ref: '#/components/responses/server-error' components: parameters: offset: in: query name: offset description: The offset to use for pagination. Identifies the position of the first item returned in the collection required: false schema: type: number default: 0 example: 20 subaccount-id: in: query name: subaccountId required: false schema: type: string format: uuid example: 2fd4d402-b759-479c-87a6-58d85e345356 limit: in: query name: limit description: Maximum number of items to return required: false schema: type: integer minimum: 1 maximum: 100 default: 25 example: 25 network-reference: in: query name: networkReference required: false schema: type: string example: ABC12345 network-bulk-feed-id: in: path name: networkBulkFeedId required: true schema: type: string format: uuid example: eb2ded7e-11fa-46fc-bd3e-f5b1d56fd3b3 examples: network-bulk-feeds-failed: description: Example of a Network Bulk Feed resource in failed state (VISA) value: _links: self: href: /network-bulk-feeds/a3b1c2d4-5e6f-7890-abcd-ef1234567890 id: a3b1c2d4-5e6f-7890-abcd-ef1234567890 subaccountId: f297d659-c13d-4219-aeaa-e10a845140a5 network: VISA networkReference: 119999789452 state: failed type: VBDS errorReason: 'Starter data ingestion failed: invalid RPIC configuration' createdAt: '2024-12-19T14:45:00Z' updatedAt: '2024-12-20T10:30:00Z' network-bulk-feeds: description: Example of a Network Bulk Feed resource value: _links: self: href: /network-bulk-feeds/75ea3c99-6bf5-4b16-8f68-0cdc43d75806 id: 75ea3c99-6bf5-4b16-8f68-0cdc43d75806 subaccountId: f297d659-c13d-4219-aeaa-e10a845140a5 network: MASTERCARD networkReference: G1234567 state: submitted type: SMARTDATA createdAt: '2024-12-19T14:45:00Z' updatedAt: '2024-12-19T14:45:00Z' responses: not-found: description: The requested resource was not found on the server content: application/problem+json: schema: type: object properties: type: type: string instance: type: string detail: type: string title: type: string enum: - Not Found required: - detail - title example: title: Not Found detail: The requested resource was not found on the server. conflict: description: Request conflict with the current state of the target resource content: application/problem+json: schema: $ref: '#/components/schemas/conflict' examples: Minimum shape (detail only): value: detail: Card verification with id=9fab1bea-bc1e-4757-bd47-479422e5983b was abandoned by the user during the authentication process. Please start a new verification. Resource conflict with currentValue: value: title: Conflict detail: The target resource already exists. currentValue: 396aebd2-002f-4ccf-9b4d-f961c693e6e2 unauthorized: description: Authentication credentials were either missing or incorrect content: application/problem+json: schema: type: object properties: detail: type: string title: type: string enum: - Unauthorized required: - detail - title example: title: Unauthorized detail: Authentication credentials were either missing or incorrect. forbidden: description: Authentication credentials used do not have have permissions to perform the request content: application/problem+json: schema: type: object properties: detail: type: string title: type: string enum: - Forbidden required: - detail - title example: title: Forbidden detail: You do not have permission to access the requested resource. server-error: description: The server encountered an unexpected condition that prevented it from fulfilling the request content: application/problem+json: schema: type: object properties: detail: type: string title: type: string enum: - Internal Server Error required: - detail - title example: title: Internal Server Error detail: The server encountered an unexpected condition that prevented it from fulfilling the request. bad-request: description: The server cannot or will not process the request due to something that is perceived to be a client error content: application/problem+json: schema: type: object properties: detail: type: string title: type: string enum: - Bad Request errors: type: array items: type: object properties: title: type: string detail: type: string required: - title - detail required: - detail - title examples: Example Generic Bad Request Payload Response: value: title: Bad Request detail: Request object failed validation. Example Generic Bad Request Parameters Response: value: title: Bad Request detail: Request parameters are invalid. schemas: network-bulk-feeds: type: object required: - _links - id - subaccountId - network - networkReference - state - type - createdAt - updatedAt properties: _links: type: object required: - self properties: self: $ref: '#/components/schemas/link' id: type: string format: uuid description: The unique identifier of this network bulk feed entity. subaccountId: type: string format: uuid description: The unique identifier of the subaccount related to this entity. network: type: string enum: - AMEX - MASTERCARD - VISA description: The network where the feed belongs. networkReference: type: string description: The identifier associated with the card network's bulk enrollment feed. state: type: string enum: - submitted - active - deactivated - failed description: 'The state of the network bulk feed entity. > **Note**: The `failed` state is currently only applicable to VISA bulk feeds. ' type: type: string enum: - GL - SMARTDATA - VBDS - VCF errorReason: type: string nullable: true description: 'A human-readable reason explaining why the bulk feed failed. Only present when `state` is `failed`. > **Note**: Currently only applicable to VISA bulk feeds. ' expectedCardCount: type: integer minimum: 1 maximum: 1000000 description: 'The expected number of cards that will be enrolled under this bulk feed, as provided at creation time. Only present when the feed was created with this field. ' createdAt: description: Date and time when this resource was created, in UTC, following ISO 8601 format. type: string format: date-time updatedAt: description: Date and time when this resource was last updated, in UTC, following ISO 8601 format. type: string format: date-time link: type: object properties: href: type: string templated: type: boolean type: type: string deprecation: type: string name: type: string profile: type: string title: type: string hreflang: type: string required: - href conflict: type: object properties: detail: type: string title: type: string enum: - Conflict currentValue: type: string description: Current value for the property causing the conflict requestedValue: type: string description: Requested value for the property causing the conflict required: - detail securitySchemes: main-auth: type: oauth2 flows: implicit: authorizationUrl: https://api.astrada.co/auth/realms/{accountId}/protocol/openid-connect/token refreshUrl: https://api.astrada.co/auth/realms/{accountId}/protocol/openid-connect/token scopes: accounts:write: Accounts write resource accounts:read: Accounts read resource subaccounts:write: Subaccounts write resource subaccounts:read: Subaccounts read resource card-connector-data-links:write: card-connector-data-link resource card-connector-consents:read: Card Consent read resource card-connector-consents:write: Card Consent write resource webhooks:read: Read Webhook resources webhooks:write: Write Webhook resources card-subscriptions:write: Create card subscription card-subscriptions:read: Read card subscription card-verifications:write: Create card verification card-verifications:read: Read Card verification cards:read: Read Card resources cardholder:read: Read Cardholder resources cardholder:write: Write Cardholder resources transactions:read: Read Transaction resources transaction-messages:read: Read Transaction Message resources network-bulk-feeds:read: Read network bulk feed network-bulk-feeds:write: Write network bulk feed network-links:write: Write network link enrollment-methods:write: Write enrollment methods simulation:write: Write sandbox simulations banking:read: Read banking resources banking:write: Write banking resources banking:admin: Admin banking operations appstore:enrollment:write: Enroll cards via the appstore B2C flow appstore:cards:read: View enrolled cards in the appstore appstore:transactions:read: View synced transactions in the appstore appstore:transactions:sync: Trigger transaction sync in the appstore appstore:sessions:read: Read appstore session state appstore:sessions:write: Write or delete appstore session state appstore:tokens:read: Read appstore stored tokens and connections appstore:tokens:write: Write appstore stored tokens and connections externalDocs: description: Find out more about Astrada API. url: https://docs.astrada.co/reference