SuiteCRM 8.3 API - GET request works but not POST

I’m using a docker image by Bitnami and I’m able to make a GET request such as listing the current meetings.

curl -X GET -H ā€œContent-Type: application/jsonā€ -H
ā€œAuthorization: Bearer secretā€
https://portal.domain.com:8443/legacy/Api/V8/module/Meetings

However, If I do a POST request to create a meeting, I get an error:

ā€œaccess_deniedā€,ā€œerror_descriptionā€:ā€œThe resource owner or authorization server denied the request.ā€,ā€œhintā€:ā€œError while decoding from Base64Url, invalid base64 characters detectedā€

Below is the POST command I used. It did not matter whether I set the type to ā€œMeetingā€ or ā€œMeetingsā€.

curl -X POST -H ā€œContent-Type: application/jsonā€ -H ā€œAuthorization: Bearer secretā€
-d ā€˜{
ā€œdataā€: {
ā€œtypeā€: ā€œMeetingā€,
ā€œattributesā€: {
ā€œnameā€: ā€œInternal Meetingā€,
ā€œduration_hoursā€: ā€œ1ā€,
ā€œduration_minutesā€: ā€œ15ā€,
ā€œdate_startā€: ā€œ2023-07-14 09:00:00ā€,
}
}
}’ https://portal.domain.com:8443/legacy/Api/V8/module

I use an OAUTH2 client associated to a regular user. This regular user can login to the SuiteCRM web interface, list and create meetings.

Is there anything that I missed ?

Thanks.

Double check your token header. This error comes from decoding JWT.

Thank you. After removing the ā€œcomaā€ at the end of date_start, it worked.