# Manage custom data fields test cases
source: https://developer.mastercard.com/business-payment-controls/documentation/testing/custom-data-fields/index.md

### Test data: Create a Custom Data Fields {#test-data-create-a-custom-data-fields}

**POST**/custom-data

#### Positive sample response {#positive-sample-response}

Success: Create a Custom Data Fields

HTTP code `2xx`

**Payload:**

```json
{
    "customDataGuid": "0ADN576d048980802d9786d3a43db7a02fcaa677e5bf49551065f5b5147068af77671692787688",
    "ownerGuid": "0VCNHZX576Nc5qFs41k2ZWnoYIqOP7DTjJ7Dwpb7E6yHHY15276029621000issuerGuid101",
    "customDataAlias": "June Travel Expenses",
    "customDataFields": [
        {
            "name": "myName",
            "value": "myValue"
        }
    ]
}
```

#### Negative sample response {#negative-sample-response}

Fail: Owner Guid missing

HTTP code `4xx`

**Payload:**

```json
{
    "Errors": {
        "Error": [
            {
                "Source": "addenda-service",
                "ReasonCode": "ownerGuid.missing",
                "Description": "Owner GUID is required",
                "Recoverable": false,
                "Details": "customDataGuid"
            }
        ]
    }
}
```

### Test data: Update a Custom Data Fields {#test-data-update-a-custom-data-fields}

**PUT**/custom-data/{custom_data_guid}

#### Positive sample response {#positive-sample-response}

Success: Update a Custom Data Fields

HTTP code `2xx`

**Payload:**

```json
{
    "customDataGuid": "0ADN8d2c927cf32d616ee3814f451d2f121251d29f08cd844367595153faaf5ea0f31692788064",
    "ownerGuid": "0VCNHZX576Nc5qFs41k2ZWnoYIqOP7DTjJ7Dwpb7E6yHHY15276029621000issuerGuid101",
    "customDataAlias": "Update June Travel Expenses",
    "customDataFields": [
        {
            "name": "Update_myName",
            "value": "Update_myValue"
        }
    ]
}
```

#### Negative sample response {#negative-sample-response}

Fail: customDataGuid not-exist

HTTP code `4xx`

**Payload:**

```json
{
    "Errors": {
        "Error": [
            {
                "Source": "addenda-service",
                "ReasonCode": "customDataGuid.not.found",
                "Description": "Custom Data GUID not found",
                "Recoverable": false,
                "Details": "customDataGuid"
            }
        ]
    }
}
```

### Test data: Retrieve Custom Data Fields details {#test-data-retrieve-custom-data-fields-details}

**GET**/custom-data/{custom_data_guid}

#### Positive sample response {#positive-sample-response}

Success: Get a Custom Data Fields

HTTP code `2xx`

**Payload:**

```json
{
    "customDataGuid": "0ADN8d2c927cf32d616ee3814f451d2f121251d29f08cd844367595153faaf5ea0f31692788064",
    "ownerGuid": "0VCNHZX576Nc5qFs41k2ZWnoYIqOP7DTjJ7Dwpb7E6yHHY15276029621000issuerGuid101",
    "customDataAlias": "Update June Travel Expenses",
    "customDataFields": [
        {
            "name": "GET_myName",
            "value": "GET_myValue"
        }
    ]
}
```

#### Negative sample response {#negative-sample-response}

Fail: customDataGuid not found

HTTP code `4xx`

**Payload:**

```json
{
    "Errors": {
        "Error": [
            {
                "Source": "addenda-service",
                "ReasonCode": "customDataGuid.not.found",
                "Description": "Custom Data GUID not found",
                "Recoverable": false,
                "Details": "customDataGuid"
            }
        ]
    }
}
```

### Test data: Delete a Custom Data Fields {#test-data-delete-a-custom-data-fields}

**DELETE**/custom-data/{custom_data_guid}

#### Positive sample response {#positive-sample-response}

Success: Delete an existing Custom Data Field

HTTP code `204`

Response Payload: No content

#### Negative sample response {#negative-sample-response}

Fail: customDataGuid does not exist

HTTP code `4xx`

Response Payload:

```json
{
    "Errors": {
        "Error": [
            {
                "Source": "addenda-service",
                "ReasonCode": "customDataGuid.not.found",
                "Description": "Custom Data GUID not found",
                "Recoverable": false,
                "Details": "customDataGuid"
            }
        ]
    }
}
```

### Test data: Search for Custom Data Fields {#test-data-search-for-custom-data-fields}

**SEARCH**/custom-data/searches

#### Positive sample response {#positive-sample-response}

Success: Search for CDFs by IssuerGuid, CustomDataGuid and customDataAliases

HTTP code `2xx`

Request Payload:

```json
{
    "customDataGuids": [
        "0ADN62f2395566d0bd8c692aa0617ca0a369d3240aa5dcb1efb274415742461906971692889595"
    ],
    "corpGuids": [
        "SENTTY56653DA768D81ACD09E54A059417F68B1E1E87D48015FBEAF14769E14895DD981511341864"
    ],
    "issuerGuids": [
        "SENTTY34D6E9E1D01C8DF8B4EBD571AAF1AC0151B1805484346C4FC4F90926E2A17E2B1511341793"
    ],
    "customDataAliases": [
        "Sample alias1",

        "Sample alias2",
    ],
    "pagination": {
        "page": 0,
        "pageLength": 40
    }
}
```

Negative sample response

Fail: Search for custom data alias that does not exist

HTTP code `2xx`

Request Payload:

```json
{
    "customDataGuids": [
        
    ],
    "corpGuids": [
        
    ],
    "issuerGuids": [
        
    ],
    "customDataAliases": [
        "012345"
    ],
    "pagination": {
        "page": 0,
        "pageLength": 40
    }
}
```

Response Payload:

```json
[
    
]
```

### Test data: Register a funding source with custom data fields {#test-data-register-a-funding-source-with-custom-data-fields}

**POST**/funding-sources

#### Positive sample response {#positive-sample-response}

Success: Create funding source with custom data associated

HTTP code `2xx`

**Payload:**

```json
{
    "fundingSourceGuid": "0ENTff3aeb51c0a3ff66aea801fa7c75b779428aa034658b5e5070ca089fcd700f7e1692792742",
    "realCardGuid": "0ENTe69e038916d74da164c2e628cd8c60c48d6dbdd824d8618f77b83015134c12bb1692792610",
    "vcnCreationEnabled": true,
    "fundingSourceAlias": "fundingSourceAlias",
    "authorizationControlsEnabled": false,
    "active": true,
    "ownerGuid": "SENTTY56653DA768D81ACD09E54A059417F68B1E1E87D48015FBEAF14769E14895DD981511341864",
    "createdDate": "2023-08-23T12:12:22.378Z",
    "lastUpdateDate": "2023-08-23T12:12:22.378Z",
    "customDataGuid": "0ADN177914c843e11f955c9be5a041f643a0693a8ab449bf2989cd89b3ef640b05921685427575"
}
```

#### Negative sample response {#negative-sample-response}

Fail: Invalid (non-existing) customDataGuid

HTTP code `4xx`

**Payload:**

```json
[
    {
        "code": "customDataGuid.invalid",
        "description": "Custom Data GUID is invalid",
        "scope": "customDataGuid"
    }
]
```

### Test data: Retrieve a funding source with custom data fields {#test-data-retrieve-a-funding-source-with-custom-data-fields}

**GET**/funding-sources/{{fundingSourceGuid}}

#### Positive sample response {#positive-sample-response-1}

Success: Retrieve funding source with custom data associated

HTTP code `2xx`

**Payload:**

```json
{
    "fundingSourceGuid": "0ENTff3aeb51c0a3ff66aea801fa7c75b779428aa034658b5e5070ca089fcd700f7e1692792742",
    "realCardGuid": "0ENTe69e038916d74da164c2e628cd8c60c48d6dbdd824d8618f77b83015134c12bb1692792610",
    "vcnCreationEnabled": true,
    "fundingSourceAlias": "fundingSourceAlias",
    "authorizationControlsEnabled": false,
    "active": true,
    "ownerGuid": "SENTTY56653DA768D81ACD09E54A059417F68B1E1E87D48015FBEAF14769E14895DD981511341864",
    "createdDate": "2023-08-23T12:12:22.378Z",
    "lastUpdateDate": "2023-08-23T12:12:22.378Z",
    "customDataGuid": "0ADN177914c843e11f955c9be5a041f643a0693a8ab449bf2989cd89b3ef640b05921685427575"
}
```

#### Negative sample response {#negative-sample-response-1}

Fail: Invalid (non-existing) fundingSourceGuid

HTTP code `4xx`

**Payload:**

    [
        {
            "code": "resource.not.found",
            "description": "Funding Source not found"
        }
    ]

### Test data: Associate a funding source with custom data fields {#test-data-associate-a-funding-source-with-custom-data-fields}

**PUT**/funding-sources/{{fundingSourceGuid}}

#### Positive sample response {#positive-sample-response-2}

Success: Update funding source with custom data associated

HTTP code `2xx`

**Payload:**

```json
{
    "fundingSourceGuid": "0ENTff3aeb51c0a3ff66aea801fa7c75b779428aa034658b5e5070ca089fcd700f7e1692792742",
    "realCardGuid": "0ENTe69e038916d74da164c2e628cd8c60c48d6dbdd824d8618f77b83015134c12bb1692792610",
    "vcnCreationEnabled": true,
    "fundingSourceAlias": "test123",
    "authorizationControlsEnabled": true,
    "active": true,
    "ownerGuid": "SENTTY56653DA768D81ACD09E54A059417F68B1E1E87D48015FBEAF14769E14895DD981511341864",
    "createdDate": "2023-08-23T12:12:22.378Z",
    "lastUpdateDate": "2023-08-23T12:20:35.412Z",
    "customDataGuid": "0ADN177914c843e11f955c9be5a041f643a0693a8ab449bf2989cd89b3ef640b05921685427575"
}
```

#### Negative sample response {#negative-sample-response-2}

Fail: Invalid (non-existing) customDataGuid

HTTP code `4xx`

**Payload:**

```json
[
    {
        "code": "customDataGuid.invalid",
        "description": "Custom Data GUID is invalid",
        "scope": "customDataGuid"
    }
]
```

### Test data: Register a virtual card with custom data fields {#test-data-register-a-virtual-card-with-custom-data-fields}

**POST**/virtual-card-accounts

#### Positive sample response {#positive-sample-response}

Success: Create virtual card with custom data associated

HTTP code `2xx`

**Payload:**

```json
{  

    "accountGuid": "0ENT03a216abaa01b8e59e72c176622b5df3163e09bd08bd941e4818a6c410c119fd1692874139",
    "expiry": "2024-10",
    "billingCurrency": "826",
    "active": true,
    "createdDate": "2023-08-24T10:48:59.749Z",
    "lastUpdateDate": "2023-08-24T10:48:59.749Z",
    "fundingSourceGuid": "0ENTf3f0396e59ace1cbe6646a5229b5873f7da1e46f0f881e684bc5f76285af27d91692874124",
    "ownerGuid": "SENTTY56653DA768D81ACD09E54A059417F68B1E1E87D48015FBEAF14769E14895DD981511341864",
    "cvc": "754",
    "rules": {
        "accountControl": {
            "action": "APPROVE",
            "alias": "accountRule255579586",
            "cardLimit": {
                "cardAmount": "21.45",
                "availableBalance": "21.45",
                "authorisationCount": 6
            },
            "monthlyLimit": {
                "cardAmount": "13.73",
                "availableBalance": "13.73",
                "authorisationCount": 3
            },
            "startDate": "2029-10-06T10:09:42.100Z",
            "endDate": "2030-10-06T10:09:42.100Z"
        }
    },
    "accountNumber": "XXXXXXXXXXXX2888",
    "customDataGuid": "0ADN177914c843e11f955c9be5a041f643a0693a8ab449bf2989cd89b3ef640b05921685427575"
}
```

#### Negative sample response {#negative-sample-response}

Fail: Invalid (non-existing) customDataGuid

HTTP code `4xx`

**Payload:**

```json
[
    {
        "code": "customDataGuid.invalid",
        "description": "Custom Data GUID is invalid",
        "scope": "customDataGuid"
    }
]
```

### Test data: Retrieve a virtual card with custom data fields {#test-data-retrieve-a-virtual-card-with-custom-data-fields}

**GET**/virtual-card-accounts/{{virtualCardGuid}}

#### Positive sample response {#positive-sample-response-1}

Success: Retrieve virtual card with custom data associated

HTTP code `2xx`

**Payload:**

```json
{

    "accountGuid": "0ENT559263808f411a24f5e489c79a15aaa9069ee448817a8b8b19539b6feaadf7261692874292",
    "expiry": "2024-10",
    "billingCurrency": "826",
    "active": true,
    "createdDate": "2023-08-24T10:51:32.873Z",
    "lastUpdateDate": "2023-08-24T10:51:32.873Z",
    "fundingSourceGuid": "0ENTf3f0396e59ace1cbe6646a5229b5873f7da1e46f0f881e684bc5f76285af27d91692874124",
    "ownerGuid": "SENTTY56653DA768D81ACD09E54A059417F68B1E1E87D48015FBEAF14769E14895DD981511341864",
    "cvc": "474",
    "rules": {
        "accountControl": {
            "action": "APPROVE",
            "alias": "accountRule255579586",
            "cardLimit": {
                "cardAmount": "21.45",
                "availableBalance": "21.45",
                "authorisationCount": 6
            },
            "monthlyLimit": {
                "cardAmount": "13.73",
                "availableBalance": "13.73",
                "authorisationCount": 3
            },
            "startDate": "2029-10-06T10:09:42.100Z",
            "endDate": "2030-10-06T10:09:42.100Z"
        }
    },
    "accountNumber": "XXXXXXXXXXXX8899",
    "customDataGuid": "0ADN177914c843e11f955c9be5a041f643a0693a8ab449bf2989cd89b3ef640b05921685427575"
}
```

#### Negative sample response {#negative-sample-response-1}

Fail: Invalid (non-existing) virtualCardGuid

HTTP code `4xx`

**Payload:**

```json
[
    {
        "code": "resource.not.found",
        "description": "Virtual Card not found"
    }
]
```

### Test data: Associate a virtual card with custom data fields {#test-data-associate-a-virtual-card-with-custom-data-fields}

**PUT**/virtual-card-accounts/{{virtualCardGuid}}

#### Positive sample response {#positive-sample-response-2}

Success: Update virtual card with custom data associated

HTTP code `2xx`

**Payload:**

```json
{
    "accountGuid": "0ENT559263808f411a24f5e489c79a15aaa9069ee448817a8b8b19539b6feaadf7261692874292",
    "expiry": "2024-10",
    "billingCurrency": "826",
    "active": true,
    "createdDate": "2023-08-24T10:51:32.873Z",
    "lastUpdateDate": "2023-08-24T10:54:52.617Z",
    "fundingSourceGuid": "0ENTf3f0396e59ace1cbe6646a5229b5873f7da1e46f0f881e684bc5f76285af27d91692874124",
    "ownerGuid": "SENTTY56653DA768D81ACD09E54A059417F68B1E1E87D48015FBEAF14769E14895DD981511341864",
    "cvc": "474",
    "accountNumber": "XXXXXXXXXXXX8899",
    "customDataGuid": "0ADN177914c843e11f955c9be5a041f643a0693a8ab449bf2989cd89b3ef640b05921685427575"
}
```

#### Negative sample response {#negative-sample-response-2}

Fail: Invalid (non-existing) customDataGuid

HTTP code `4xx`

**Payload:**

```json
[
    {
        "code": "customDataGuid.invalid",
        "description": "Custom Data GUID is invalid",
        "scope": "customDataGuid"
    }
]
```

