I've a scenario where a post request from first microservice creates new user and creates a wallet for newly created user from different microservice.
I'm returning HTTP status 201 when both user and wallet created. I'm bit confused what status should I return if user is created but wallet isn't.
I came across some articles and found two relevant to my confusion but are contradictory on returning HTTP status 207 due to its limitation related to WebDAV.
- Is Http response 207 MULTI-STATUS appropriate for multi task operations?
- REST API response in partial success
refer my code -
    @PostMapping("/register")
public ResponseEntity<User> saveUser(@RequestBody User user) {
    user.setUserId(sequenceGeneratorService.generateSequence(User.SEQUENCE_NAME));
    user.getRoles().forEach(role -> role.setRoleId(sequenceGeneratorService.generateSequence(Role.SEQUENCE_NAME)));
    User savedUser = userService.saveUser(user);
    ResponseEntity<Wallet> createdWallet = createUserWallet(savedUser);
    if (createdWallet.getStatusCode().is2xxSuccessful()) {
        savedUser.setWallet(createdWallet.getBody());
        return new ResponseEntity<User>(savedUser, HttpStatus.CREATED);
    } else {// here is the confusion
        return new ResponseEntity<User>(savedUser, HttpStatus.MULTI_STATUS);
    }
}
private ResponseEntity<Wallet> createUserWallet(User savedUser) {
    Wallet userWallet = Wallet.builder()
            .walletId(sequenceGeneratorService.generateSequence(Wallet.SEQUENCE_NAME))
            .userId(savedUser.getUserId())
            .balance(BigDecimal.ZERO).build();
    return walletServiceProxy.createWallet(userWallet);
}
May I know which status should I return here?
 
    