numbers.price_changed
The price of the number is not the price you were shown when you claimed it.
numbers.price_changed is returned by POST /v1/numbers/{id}/claim when the request included expected_monthly_minor and the monthly price the claim would charge now is different. The claim is refused before any money moves.
The price shown in number search is not the price the claim would charge. The current price is in details[] as monthly_minor (net, before VAT) and currency.
Show the customer the current price, and claim again with expected_monthly_minor set to it, or leave the field out to accept the current price.
{
"error": {
"code": "numbers.price_changed",
"message": "the price of this number changed since it was shown; confirm the new price and retry",
"details": ["monthly_minor=50000", "currency=KES"],
"request_id": "req_01900000abc"
}
}