# Add Multiple Cards
source: https://developer.mastercard.com/donations/documentation/use-cases/manage-cards/add-bulk-cards/index.md

## Overview {#overview}

The **Add Multiple Cards** endpoint adds at a time up to 10 payment cards-on-file to a donor profile in a single request. After passing basic validation, each card is processed individually.

To add multiple cards, provide the unique `donorId` as the endpoint path parameter. For each successfully added card, the endpoint generates and returns a unique `card_id`.

A successful request returns the `HTTP 200 Created` status and a JSON response body that includes two lists:

* `addedCards`: This list contains the cards that were successfully added along with their masked card numbers and system-generated unique card ID for each card.

* `failedCards`: This list contains the cards that could not be added, along with their masked card numbers and reason codes explaining the failure.

## Sequence Diagram {#sequence-diagram}

The following outlines the sequence of events:
Diagram add-bulk-cards

## Execution Steps {#execution-steps}

The following details the steps in the above sequence diagram:

1. The donor signs into the partner user interface and submits bulk card data to add.
2. The partner user interface forwards the request to upload multiple cards for a donor to the partner server.
3. The partner server invokes the `POST /donors/{donor_id}/bulk-cards` endpoint and provides all the data in the endpoint request.
4. The Mastercard Donate service validates the donor identifier.
5. The Mastercard Donate service checks for the number of cards in the request and PAN uniqueness if it finds the donor.
6. If the Mastercard Donate service finds that the number of cards in the request exceeds the set limit, it throws an error and terminates the request.
7. If the Mastercard Donate service finds that the number of cards in the request is within the set limit, then it checks every card in the request for its uniqueness.   
   If it finds a duplicate card, the Mastercard Donate service throws an error and adds the card to the failed cards list.
8. If the card is unique, the Mastercard Donate service saves the card details to the database, generates a unique card ID, and adds the card to the added cards list.
9. On successful completion of the request, the Mastercard Donate service sends the list of added and failed cards in the response to the partner server.
10. The partner server forwards the response with added and failed cards list to the donor.
11. The Mastercard Donate service sends an error message to the partner server if it does not find the donor.
12. The partner server forwards the error message to the partner user interface.
13. The partner user interface displays the error message to the donor.

## Endpoint {#endpoint}


API Reference: `POST /donors/{donor_id}/bulk-cards`

## Endpoint Parameter {#endpoint-parameter}

For more details on the endpoint parameters, refer to the [Parameters to Add Multiple Cards](https://developer.mastercard.com/donations/documentation/parameters/manage-cards-param/add-bulk-cards-param/index.md) section.

## Sample Request and Response {#sample-request-and-response}

For more details on the sample request and response, refer to the [Add Multiple Cards](https://developer.mastercard.com/donations/tutorial/donation-api-details/cardsapinew/index.md) tutorial.
