# Migration v44

Breaking change: user services, createProfile(), removed source parameter.

The source parameter is to be passed in the user payload to begin with, this just a fallback value.
Having it as a function param also creates useless noise for the consuming app.
The alternative chosen here is to pass the systemCode as a config param, which hides the fallback logic from the consumer and allows us to pass it to other api endpoints should FT Core request it.

**We ALREADY pass the system code at config time under `originSystemId`.**

## Exact change
```
- public async createProfile(user: UserModel, sendRegistrationEmail: boolean = false, source: string = 'n-membership-sdk'): Promise<UserProfile> {
+ public async createProfile(user: UserModel, sendRegistrationEmail: boolean = false): Promise<UserProfile> {
```

## Usage example
```
const {
	User,
} = require('@financial-times/n-membership-sdk');

const userSDK = new User(currentConfig);
const userPayload = {userData}; // should include `source` but may not?
const sendRegistrationEmail = false;

const paymentMethod = await userSDK.createProfile(user, sendRegistrationEmail);
```
