Submit an address-change request
POST
/api/v1/address-change
const url = 'https://address-change-test.apps.gold.devops.gov.bc.ca/api/v1/address-change';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"idempotencyKey":"submit-7f3a","effectiveDate":"2026-02-01","isBillingAddressSame":true,"person":{"firstName":"Alex","lastName":"Example","dateOfBirth":"1990-04-12"},"oldAddress":{"country":"Canada","addressLineOne":"1234 Example Street","locality":"Victoria","region":"BC","postalCode":"V8W 1A1"},"newAddress":{"country":"Canada","addressLineOne":"5678 Sample Avenue","locality":"Victoria","region":"BC","postalCode":"V8W 1A1"},"notificationIntent":{"notifyIcbc":true,"notifyMsp":true}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://address-change-test.apps.gold.devops.gov.bc.ca/api/v1/address-change \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "idempotencyKey": "submit-7f3a", "effectiveDate": "2026-02-01", "isBillingAddressSame": true, "person": { "firstName": "Alex", "lastName": "Example", "dateOfBirth": "1990-04-12" }, "oldAddress": { "country": "Canada", "addressLineOne": "1234 Example Street", "locality": "Victoria", "region": "BC", "postalCode": "V8W 1A1" }, "newAddress": { "country": "Canada", "addressLineOne": "5678 Sample Avenue", "locality": "Victoria", "region": "BC", "postalCode": "V8W 1A1" }, "notificationIntent": { "notifyIcbc": true, "notifyMsp": true } }'Accepts an address-change request for asynchronous delivery to the selected partners and returns a request identifier. Repeating a submission with the same idempotency key returns the original result.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”The address-change payload.
Media typeapplication/json
object
idempotencyKey
required
string
effectiveDate
required
string
isBillingAddressSame
required
boolean
person
required
object
firstName
required
string
firstMiddleInitial
string
secondMiddleInitial
string
lastName
required
string
dateOfBirth
required
string
emailAddress
string
daytimePhone
string
driversLicenseNumber
string
heightCm
integer
weightKg
integer
securityKeyword
string
phn
string
oldAddress
required
object
country
required
string
addressLineOne
required
string
addressLineTwo
string
locality
required
string
region
required
string
postalCode
required
string
newAddress
required
object
country
required
string
addressLineOne
required
string
addressLineTwo
string
locality
required
string
region
required
string
postalCode
required
string
mailingAddress
object
country
required
string
addressLineOne
required
string
addressLineTwo
string
locality
required
string
region
required
string
postalCode
required
string
notificationIntent
required
object
notifyIcbc
required
boolean
notifyMsp
required
boolean
notifyBcsc
boolean
Example
{ "idempotencyKey": "submit-7f3a", "effectiveDate": "2026-02-01", "isBillingAddressSame": true, "person": { "firstName": "Alex", "lastName": "Example", "dateOfBirth": "1990-04-12" }, "oldAddress": { "country": "Canada", "addressLineOne": "1234 Example Street", "locality": "Victoria", "region": "BC", "postalCode": "V8W 1A1" }, "newAddress": { "country": "Canada", "addressLineOne": "5678 Sample Avenue", "locality": "Victoria", "region": "BC", "postalCode": "V8W 1A1" }, "notificationIntent": { "notifyIcbc": true, "notifyMsp": true }}Responses
Section titled “Responses”The request was accepted for processing.
Media typeapplication/json
object
requestId
required
string format: uuid
Example
{ "requestId": "7c825573-3df5-4e63-b376-ef7a4057369d"}The request is malformed or fails validation. The body is an RFC 9457 problem details object; errors lists the invalid fields without echoing their values.
Media typeapplication/json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
errors
required
Array<object>
object
type
required
string
code
required
string
message
required
string
location
required
string
Example
{ "type": "about:blank", "title": "Bad Request", "status": 400, "detail": "Invalid request body", "errors": [ { "type": "validation", "code": "invalid_string", "message": "Invalid value at /person/dateOfBirth", "location": "body" } ]}A valid bearer access token is required.
Media typeapplication/json
object
statusCode
required
number
message
required
string
error
required
string
Example
{ "statusCode": 401, "message": "A bearer access token is required", "error": "Unauthorized"}The access token does not include the required scope.
Media typeapplication/json
object
statusCode
required
number
message
required
string
error
required
string
Example
{ "statusCode": 403, "message": "Missing address-change submission permission", "error": "Forbidden"}The request conflicts with the current state of a resource.
Media typeapplication/json
object
statusCode
required
number
message
required
string
error
required
string
Example
{ "statusCode": 409, "message": "An address-change request is already active", "error": "Conflict"}The service or a downstream partner is temporarily unavailable.
Media typeapplication/json
object
statusCode
required
number
message
required
string
error
required
string
Example
{ "statusCode": 503, "message": "Request could not be saved", "error": "Service Unavailable"}