Create account API | Delimited source | multi valued attribute

Hi Team,

I am trying to create an account on a delimited source via postman.

Its a test delimited source with 3 schema attributes:

Here is my API call:

curl --location 'https://tenant.api.identitynow.com/v3/accounts' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <Token>' \
--data-raw '{
        "attributes": {
            "sourceId": "source_id",
            "empID": "234567",
            "userID": "kkd1r3",
            "email": [
                "[email protected]",
                "[email protected]",
                "[email protected]"
            ]
            
        }
}'

But I am always ending up with a 500 internal error. What am I missing?

Please note that, I am able to list the accounts on the source:

Thanks in advance

@vbdm 500 seems to be an error from the sailpoint resource server itslef .by the way can you try to check that when you aggregate account via file which api and how the body format is there it may give you some help

thanks
hari

Hi @vbdm

my observation:

source file:

accounts.csv:
"userID","empID","email"
"reddy","123","[email protected],[email protected],[email protected]"

when I list the accounts, email value is showing like below where email values are separated with comma instead of double quote of each value.
JSON format:

"attributes": {
            "empID": "123",
            "userID": "reddy",
            "email": [
                "[email protected],[email protected],[email protected]"
            ],
            "idNowDescription": "xyz"
        },

May I know your input file format?

My observation with respect to delimited input file.

  1. Multi values always surrounded with double quote as shown below example data and then separated with Delimiter which is specified int the Additional Settings page

  2. headers of the file optional to surrounded with double quote.

  3. single value attribute also optional to be surrounded with double quote.

userID,empID,email
"reddy","123","[email protected],[email protected],[email protected]"
dummy,124,"[email protected],[email protected],[email protected]"
test,125,"[email protected],[email protected],[email protected]"
"attributes": {
            "empID": "124",
            "userID": "dummy",
            "email": [
                "[email protected],[email protected],[email protected]"
            ],
            "idNowDescription": "qwerty"
        },
"attributes": {
            "empID": "125",
            "userID": "test",
            "email": [
                "[email protected],[email protected],[email protected]"
            ],
            "idNowDescription": "abc"
        },

hopefully this will give clue to your JSON input data in API call.

Hi @vbdm

The issue you reported is with your server itself, as mentioned by @haricc200

I tested it like below: (tested by myself through an API call)

Because of your issue, I have tested different scenarios. You can refer to these scenarios after you sort out your server issue. My observation shows the correct way to pass the multi-value field in an API call.

Case 1 is appropriate, which matches the aggregated data through the feed file.

account schema:

case1: sending email values similar to source feed file.

{
  "attributes": {
    "sourceId": "source_id_value",
    "empID": "141",
    "userID": "hmm",
    "email": [
      "[email protected],[email protected],[email protected]"
    ]
  }
}

UI display:

When I list the accounts:

        "attributes": {
            "mantisExecutor": "com.sailpoint.mantis.identity.task.AggregateIdentityTask",
            "sourceId": "source_id_valie",
            "empID": "141",
            "serviceClass": "sailpoint.thunderbolt.service.IdentityService",
            "userID": "hmm",
            "email": [
                "[email protected],[email protected],[email protected]"
            ],
            "idNowDescription": "xyz",
            "serviceMethod": "createTask"
        },

case2: sending email each value with double quote.

{
  "attributes": {
    "sourceId": "source_id_value",
    "empID": "143",
    "userID": "bye",
    "email": [
      "[email protected]","[email protected]","[email protected]"
    ]
  }
}

UI display:

When I list the accounts:

        "attributes": {
            "mantisExecutor": "com.sailpoint.mantis.identity.task.AggregateIdentityTask",
            "sourceId": "source_id_value",
            "empID": "143",
            "serviceClass": "sailpoint.thunderbolt.service.IdentityService",
            "userID": "bye",
            "email": [
                "[email protected]",
                "[email protected]",
                "[email protected]"
            ],
            "idNowDescription": "xyz",
            "serviceMethod": "createTask"
        },

Thank you, @pattabhi for taking time and working through the scenarios.

Doing similar tests, I have concluded that case 2 is how I want the feed format to be and that is what I am using as well.

The issue is with the 500 error. What could be causing this when I am trying to update or create an account on the delimted file?

You mentioned that you tried creating the account correct? Did you face any issue or was your create API call was similar to what I posted?

What are the possibilities of this internal error in this scenario? Which path do I go down to fix this? I have “scope:all” for the PAT. I am able to read the accounts on this source. What else am I missing?

Thanks in advance

Yes my tenant is up.

I am able to read the data and do things like kick-off load accounts etc. So, I am assuming that the env varials are also set correct.

Hi @vbdm

scope should be: sp:scopes:all

Here is my API call response:

UI:

When I list the account:

        "attributes": {
            "mantisExecutor": "com.sailpoint.mantis.identity.task.AggregateIdentityTask",
            "sourceId": "source_id",
            "empID": "234567",
            "serviceClass": "sailpoint.thunderbolt.service.IdentityService",
            "userID": "kkd1r3",
            "email": [
                "[email protected]",
                "[email protected]",
                "[email protected]"
            ],
            "idNowDescription": "xyz",
            "serviceMethod": "createTask"
        },

Please check your syntax, just compare my JSON & check you domain value at environment variables.

Your syntax looks correct on your screenshot, I guess scope is not correct.

we didn’t find any scopes like you mentioned: scope:all
After taking care of scopes try below JSON:


{
"attributes": {
            "sourceId": "source_id",
            "empID": "143",
            "userID": "kkkd1r2",
            "email": [
                "[email protected]","[email protected]","[email protected]"
            ]
            
        }
}

Yes, I have the same scope:
image

Also the domain is correct because I am able to bring in the accounts via postman.

This is how the existing data appears when I list. I am trying to create a similar user or update the same.

{
        "authoritative": false,
        "systemAccount": false,
        "uncorrelated": true,
        "features": "DIRECT_PERMISSIONS, NO_RANDOM_ACCESS, DISCOVER_SCHEMA",
        "cloudLifecycleState": null,
        "identityState": null,
        "connectionType": "file",
        "uuid": null,
        "nativeIdentity": "ksd1r3",
        "description": null,
        "disabled": false,
        "locked": false,
        "type": null,
        "isMachine": false,
        "recommendation": null,
        "manuallyCorrelated": false,
        "hasEntitlements": false,
        "sourceId": "source_Id",
        "sourceName": "UserId History Store - Test 1",
        "identityId": "identity_Id",
        "identity": {
            "type": "IDENTITY",
            "id": "identity_Id",
            "name": "ksd1r3"
        },
        "sourceOwner": {
            "type": "IDENTITY",
            "id": "identity_Id",
            "name": "admin-name"
        },
        "attributes": {
            "empID": "123456",
            "userID": "ksd1r3",
            "email": [
                "[email protected]",
                "[email protected]",
                "[email protected]"
            ],
            "idNowDescription": "abc"
        },
        "origin": "AGGREGATED",
        "ownerIdentity": null,
        "ownerGroup": null,
        "id": "identity_Id",
        "name": "ksd1r3",
        "created": "2025-06-15T13:52:33.578Z",
        "modified": "2025-06-15T13:52:34.038Z"
    }

I tried to update the user/ create the user using your case 1 format and that also failed with the same error.

I created another source and tried the same APIs and its the same 500 error.

Hi @vbdm

Thanks for the update.
Since it is 500.0 Internal Server Error, kind request and your last option to create support ticket with SailPoint Support team for the resolution.

1 Like

@vbdm can you try to create with null value on email ?

Its the same error even for a null value on the email

I am able to create the accounts on demo tenant via postman. So this may end up in a support ticket. Will keep things posted here.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.