# Delete card from Protection Bulletin Remove a Pismo-issued card from the Protection Bulletin. **Note:** This endpoint takes an account token - an access token encoded with a Pismo account ID. Tokens can expire quickly, which can result in a 401 Unauthorized message. # OpenAPI definition ```json { "openapi": "3.1.0", "info": { "title": "Card issuing - Protection Bulletin", "version": "2.0.3", "description": "Bulletin API endpoints", "contact": { "name": "API Support", "url": "https://developers.pismo.io/support/" }, "license": { "name": "Copyright Pismo" } }, "servers": [ { "url": "https://sandbox.pismolabs.io/protection-bulletin", "description": "Sandbox API server for testing" } ], "security": [ { "BearerAuth": [] } ], "tags": [ { "name": "Bulletin", "description": "Endpoints to manage cards with the Protection Bulletin" } ], "components": { "parameters": { "AuthHeader": { "in": "header", "name": "Authorization", "required": true, "description": "Account token - an access token encoded with a Pismo account ID. Tokens can expire quickly, which can result in a 401 Unauthorized message.", "schema": { "type": "string", "example": "Bearer eyJhbGci...IUzUx" } }, "CardIdPath": { "name": "card_id", "in": "path", "description": "Pismo card ID.", "required": true, "schema": { "type": "number" }, "example": 10203040 } }, "schemas": { "BulletinResponseHistoryModel": { "type": "array", "description": "Response history model for the Bulletin API.", "items": { "type": "object", "properties": { "event": { "$ref": "#/components/schemas/Event" }, "event_date": { "$ref": "#/components/schemas/EventDate" }, "status": { "$ref": "#/components/schemas/Status" }, "reason": { "$ref": "#/components/schemas/Reason" }, "network_track_number": { "$ref": "#/components/schemas/NetworkTrackNumber" }, "was_automatically_purged": { "$ref": "#/components/schemas/WasAutomaticallyPurged" }, "card_track_number": { "$ref": "#/components/schemas/CardTrackNumber" }, "network_response_data": { "$ref": "#/components/schemas/NetworkResponseData" }, "region_code": { "$ref": "#/components/schemas/RegionCode" } } } }, "BulletinResponseModel": { "type": "object", "description": "Response model for the Bulletin API.", "properties": { "card_id": { "$ref": "#/components/schemas/CardID" }, "org_id": { "$ref": "#/components/schemas/OrgID" }, "program_id": { "$ref": "#/components/schemas/ProgramID" }, "network_brand_type": { "$ref": "#/components/schemas/NetworkBrandType" }, "created_at": { "$ref": "#/components/schemas/CreatedAt" }, "updated_at": { "$ref": "#/components/schemas/UpdatedAt" }, "network_track_number": { "$ref": "#/components/schemas/NetworkTrackNumber" }, "state": { "$ref": "#/components/schemas/State" }, "status": { "$ref": "#/components/schemas/Status" }, "purge_date": { "$ref": "#/components/schemas/PurgeDate" }, "was_automatically_purged": { "$ref": "#/components/schemas/WasAutomaticallyPurged" }, "card_track_number": { "$ref": "#/components/schemas/CardTrackNumber" }, "region_code": { "$ref": "#/components/schemas/RegionCode" }, "histories": { "$ref": "#/components/schemas/BulletinResponseHistoryModel" } } }, "ErrorDetailMessageModel": { "description": "Detailed information about the error.", "type": "object", "properties": { "payload": { "type": "array", "description": "List of payload-related error details.", "items": { "$ref": "#/components/schemas/ErrorPayloadMessageModel" } }, "header": { "type": "array", "description": "List of header-related error details.", "items": { "$ref": "#/components/schemas/ErrorHeaderMessageModel" } }, "parameters": { "type": "array", "description": "List of parameter-related error details.", "items": { "$ref": "#/components/schemas/ErrorParameterMessageModel" } } } }, "ErrorHeaderMessageModel": { "description": "Details about header-related errors.", "type": "object", "properties": { "field": { "type": "string", "description": "Header name related to the error.", "example": "x-field" }, "message": { "type": "string", "description": "Error message for the header.", "example": "Generic error" } } }, "ErrorMessageModel": { "title": "ErrorModel", "type": "object", "description": "API generic returned error.", "properties": { "code": { "type": "string", "description": "Error code." }, "message": { "type": "string", "description": "Error description." }, "http_status_code": { "type": "integer", "description": "HTTP status code." }, "details": { "$ref": "#/components/schemas/ErrorDetailMessageModel" } } }, "ErrorParameterMessageModel": { "description": "Details about parameter-related errors.", "type": "object", "properties": { "field": { "type": "string", "description": "Parameter name related to the error.", "example": "query_parameter" }, "message": { "type": "string", "description": "Parameter error message" } } }, "ErrorPayloadMessageModel": { "description": "Details about payload-related errors.", "type": "object", "properties": { "field": { "type": "string", "description": "Field name related to the error.", "example": "field" }, "message": { "type": "string", "description": "Error message for the field.", "example": "Generic error" } } }, "CardID": { "description": "Pismo card ID.", "type": "number", "example": 10203040 }, "CardTrackNumber": { "description": "Pismo card track number.", "type": "number", "example": 1 }, "CreatedAt": { "type": "string", "description": "Date and time when the Protection Bulletin registration was created. Format = ISO 8601.", "format": "yyyy-mm-dd hh:mm:ss", "example": "2025-04-22 20:31:50" }, "Event": { "type": "string", "description": "Event performed in the request", "enum": [ "POST", "UPDATE", "DELETE" ], "example": "POST" }, "EventDate": { "type": "string", "description": "Date and time when the event was received in the Protection Bulletin.", "format": "yyyy-mm-dd hh:mm:ss", "example": "2025-04-22 20:31:50" }, "NetworkBrandType": { "type": "string", "description": "Card network brand.", "enum": [ "ELO", "MASTERCARD", "VISA" ], "example": "ELO" }, "NetworkResponseData": { "type": "string", "description": "Response JSON data received from the network brand.\n\nThe content of this field will indicate the original response from the network brand, whether success or failure. The example provided in this model is for illustrative purposes only.\n", "example": "{\"status\":\"SUCCESS\",\"message\":\"Card added to Protection Bulletin\"}" }, "NetworkTrackNumber": { "type": "string", "description": "Created in the internal system to track the card's event history. This is a combination between the tenant and the truncated random uuid.", "example": "TN-123XXX-XXXXXX-XXXXXXX::1a2b3c" }, "OrgID": { "description": "Pismo organization/tenant ID.", "type": "string", "example": "TN-123XXX-XXXXXX-XXXXXXX" }, "ProgramID": { "description": "Pismo program ID.", "type": "number", "example": 1010 }, "PurgeDate": { "type": "string", "description": "Date when the card will be removed from the Protection Bulletin in the network brand. Format = yyyy-mm-dd.\n", "format": "yyyy-mm-dd", "example": "2025-04-22" }, "Reason": { "type": "string", "description": "Reason that indicates why the card was added to the Protection Bulletin.", "example": "L" }, "RegionCode": { "type": "array", "description": "Region code contains one or more Account Screen Authorization File (ASAF) region codes that define the distribution of a Visa cardholder account number in Card Recovery Bulletin Service files. **REQUIRED** for Visa. \n `0` - No Bulletin / V.I.P. Only (cannot be combined with other region codes)\n `A` - All Asia-Pacific region countries\n `B` - All Central Europe, Middle East, and Africa (CEMEA) region countries.\n `C` - All Visa Canada\n `D` - National Card Recovery Bulletin\n `E` - All European countries\n `F` - All Latin America and Caribbean (LAC) region countries \n\nRegion codes can be in any order, except no other region code can be specified in combination with region code 0.\n\nVisa documentation: VisaNet Authorization-Only Online Messages – Technical Specifications - Table 215: Field 127E.2 Account Screen Authorization File (ASAF) Region Codes\n", "items": { "type": "string", "enum": [ "0", "A", "B", "C", "D", "E", "F" ] } }, "State": { "type": "string", "description": "Is card blocked or not in the network brand? When the state is empty, it means the network brand did not successfully receive any action.\n", "enum": [ "", "BLOCKED", "UNBLOCKED" ], "example": "BLOCKED" }, "Status": { "type": "string", "description": "Request processing status.", "enum": [ "PENDING", "SUCCESS", "FAILED" ], "example": "PENDING" }, "UpdatedAt": { "type": "string", "description": "Date and time when the Protection Bulletin was updated. Format = ISO 8601.\n", "format": "yyyy-mm-dd hh:mm:ss", "example": "2025-04-22 20:31:50" }, "WasAutomaticallyPurged": { "type": "boolean", "description": "Was card removed from the network brand on the purge date?\n", "example": true } }, "securitySchemes": { "BearerAuth": { "type": "http", "scheme": "bearer", "description": "Account token - token encoded with a Pismo account ID. Tokens can expire quickly, which can result in a **401 Unauthorized** error.\n", "bearerFormat": "JWT" } }, "responses": { "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorMessageModel" }, "examples": { "Missing or invalid Authorization header": { "value": { "code": "EBLT0005", "message": "Missing or invalid Authorization header", "http_status_code": 401 } }, "Invalid Authorization header, missing account-id": { "value": { "code": "EBLT0006", "message": "Invalid Authorization header, missing account-id", "http_status_code": 401 } }, "Invalid Authorization header, missing tenant": { "value": { "code": "EBLT0007", "message": "Invalid Authorization header, missing tenant", "http_status_code": 401 } } } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorMessageModel" }, "examples": { "Something went wrong when try to process a request in another service": { "value": { "code": "EBLT9998", "message": "Something went wrong when try to process a request in Programs API using ID: 123", "http_status_code": 500 } }, "Something went wrong, please try again later": { "value": { "code": "EBLT9999", "message": "Something went wrong, please try again later", "http_status_code": 500 } } } } } }, "504": { "description": "Gateway Timeout", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorMessageModel" }, "examples": { "Request timeout": { "value": { "code": "EBLT0001", "message": "Request timeout", "http_status_code": 504 } } } } } }, "201DeleteBulletin": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulletinResponseModel" }, "examples": { "Delete a Elo card": { "value": { "card_id": 10203040, "org_id": "TN-123XXX-XXXXXX-XXXXXXX", "program_id": 1010, "network_brand_type": "ELO", "created_at": "2025-04-22 20:31:50", "updated_at": "2025-04-22 20:32:50", "network_track_number": "TN-123XXX-XXXXXX-XXXXXXX::1a2b3c", "status": "PENDING", "was_automatically_purged": true, "histories": [ { "event": "DELETE", "event_date": "2025-04-22 20:32:50", "status": "PENDING", "network_track_number": "TN-123XXX-XXXXXX-XXXXXXX::1a2b3c", "was_automatically_purged": true, "network_response_data": "null", "card_track_number": 1 } ] } }, "Delete a Mastercard card": { "value": { "card_id": 10203040, "org_id": "TN-123XXX-XXXXXX-XXXXXXX", "program_id": 1010, "network_brand_type": "MASTERCARD", "created_at": "2025-04-22 20:31:50", "updated_at": "2025-04-22 20:32:50", "purge_date": "2026-01-01", "network_track_number": "TN-123XXX-XXXXXX-XXXXXXX::1a2b3c", "status": "PENDING", "was_automatically_purged": true, "histories": [ { "event": "DELETE", "event_date": "2025-04-22 20:32:50", "status": "PENDING", "network_track_number": "TN-123XXX-XXXXXX-XXXXXXX::1a2b3c", "reason": "O", "was_automatically_purged": false, "network_response_data": "null", "card_track_number": 1 } ] } }, "Delete a Visa card": { "value": { "card_id": 10203040, "org_id": "TN-123XXX-XXXXXX-XXXXXXX", "program_id": 1010, "network_brand_type": "VISA", "created_at": "2025-04-22 20:31:50", "updated_at": "2025-04-22 20:32:50", "purge_date": "2026-01-01", "network_track_number": "TN-123XXX-XXXXXX-XXXXXXX::1a2b3c", "status": "PENDING", "was_automatically_purged": true, "card_track_number": 1, "region_code": [ "A", "B", "C", "D", "E", "F" ], "histories": [ { "event": "DELETE", "event_date": "2025-04-22 20:32:50", "status": "PENDING", "network_track_number": "TN-123XXX-XXXXXX-XXXXXXX::1a2b3c", "reason": "04", "was_automatically_purged": false, "network_response_data": "null", "card_track_number": 1, "region_code": [ "A", "B", "C", "D", "E", "F" ] } ] } } } } } }, "400DeleteBulletin": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorMessageModel" }, "examples": { "Invalid param": { "value": { "code": "EBLT0004", "message": "Invalid card_id param", "http_status_code": 400 } } } } } }, "404DeleteBulletin": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorMessageModel" }, "examples": { "Bulletin card not found": { "value": { "code": "BBLT0002", "message": "Bulletin card not found", "http_status_code": 404 } }, "Wallets returned not found": { "value": { "code": "EBLT0009", "message": "Wallets returned [Not found] using ID: 123", "http_status_code": 404 } } } } } }, "422DeleteBulletin": { "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorMessageModel" }, "examples": { "Error while validating fields": { "value": { "code": "BBLT0001", "message": "Error while validating fields", "http_status_code": 422, "details": { "header": [ { "field": "x-customer-id", "message": "This field is required" } ] } } }, "Bulletin card has an ongoing event in the network brand": { "value": { "code": "BBLT0003", "message": "Bulletin card has an ongoing event in the network brand.", "http_status_code": 422 } }, "The card with ID does not have a network brand": { "value": { "code": "BBLT0005", "message": "The card with ID 123 does not have a network brand.", "http_status_code": 422 } } } } } } } }, "paths": { "/v1/bulletin/{card_id}": { "delete": { "summary": "Delete card from Protection Bulletin", "operationId": "delete-v1-bulletin", "description": "Remove a Pismo-issued card from the Protection Bulletin.\n\n**Note:** This endpoint takes an account token - an access token encoded with a Pismo account ID. Tokens can expire quickly, which can result in a 401 Unauthorized message.\n", "tags": [ "Bulletin" ], "parameters": [ { "$ref": "#/components/parameters/AuthHeader" }, { "$ref": "#/components/parameters/CardIdPath" } ], "responses": { "201": { "$ref": "#/components/responses/201DeleteBulletin" }, "400": { "$ref": "#/components/responses/400DeleteBulletin" }, "401": { "$ref": "#/components/responses/401" }, "404": { "$ref": "#/components/responses/404DeleteBulletin" }, "422": { "$ref": "#/components/responses/422DeleteBulletin" }, "500": { "$ref": "#/components/responses/500" }, "504": { "$ref": "#/components/responses/504" } } } } } } ```