Create wallet unit
POST/v2/config/digital-wallet/openid/wallet-provider/wallet-unit
Registers a new wallet unit with the wallet provider. The wallet provider uses this registration to issue a Wallet Unit Attestation (WUA) to the wallet instance. The organisation must have the wallet provider capability enabled. To enable it, use PUT /v2/config/digital-wallet/openid.
The response holds the assertionToken of the new wallet unit. This token is secret. Send it only to the wallet instance.
Request
- application/json
Body
required
Details of the wallet unit to register.
Client identifier for the new wallet unit (DID or URL).
URL endpoint of the wallet instance. Optional.
clientPublicKey objectrequired
Public key JWK of the wallet instance for cryptographic verification. The service refuses the request when this object is empty.
Public key JWK of the wallet instance for cryptographic verification. The service refuses the request when this object is empty.
Default value: false
Set to true to authorize this wallet unit upon creation. Only an authorised wallet unit can get a Wallet Unit Attestation.
Responses
- 201
- 400
- 401
- 500
The wallet provider registered the wallet unit.
Response Headers
- application/json
- Schema
- Example (from schema)
Schema
walletUnit objectrequired
The wallet unit record that the wallet provider created.
Unique identifier for the wallet unit record. Use this value as the walletUnitId path parameter.
Client identifier of the wallet instance, typically a DID or URL. Used to identify the wallet during OID4VCI and OpenID4VP protocol interactions.
URL endpoint of the wallet instance, used for direct communication.
clientPublicKey objectnullablerequired
Public key JWK of the wallet instance, used to verify Wallet Unit Attestation Proof of Possession.
Public key JWK of the wallet instance, used to verify Wallet Unit Attestation Proof of Possession.
When true, this wallet unit is authorized to interact with the Wallet Provider's services.
Client assertion JWT of the wallet unit, used for OAuth 2.0 client authentication. This value is secret. Treat it as a credential and do not write it to logs.
Type of the client assertion token.
Unix timestamp (in seconds) when this wallet unit was registered.
Unix timestamp (in seconds) when this wallet unit record was last modified.
Device platform of the wallet unit. The known values are ios, android and organisation. The service does not check the value.
Device integrity token supplied by the wallet unit during registration, for example an App Attest or Play Integrity token.
Identifier of the cryptographic key that the wallet unit registered for attestation.
walletUnitMetadata objectnullablerequired
Additional metadata that the wallet unit supplied during registration.
Additional metadata that the wallet unit supplied during registration.
{
"walletUnit": {
"id": "string",
"clientId": "string",
"clientUrl": "string",
"clientPublicKey": {},
"isAuthorised": true,
"assertionToken": "string",
"assertionTokenType": "string",
"createdAt": 0,
"updatedAt": 0,
"walletUnitDevicePlatform": "ios",
"walletUnitIntegrityToken": "string",
"walletUnitKeyId": "string",
"walletUnitMetadata": {}
}
}
The request body is not valid, clientPublicKey is empty, or the organisation is not a wallet provider.
Response Headers
- application/json
- Schema
- Example (from schema)
Schema
{
"errorCode": 400,
"errorDescription": "Bad input parameter"
}
Unauthorized
Response Headers
- application/json
- Schema
- Example (from schema)
Schema
{
"errorCode": 400,
"errorDescription": "Bad input parameter"
}
Internal server error
Response Headers
- application/json
- Schema
- Example (from schema)
Schema
{
"errorCode": 400,
"errorDescription": "Bad input parameter"
}