Turns out, dropping the "initiative" and "initiative_context" properties was the solution.
{
"merchantIdentifier":"merchant.com.company.TestMerchant",
"domainName":"frontend.example.com",
"displayName":"My Store"
}
I still don't fully understand why this worked as both these properties are fairly prominent in the documentation.