# Creating a personal payment source The steps below explain how to create a personal payment source for a user profile. | Step | Name | Endpoint | Details | | --- | --- | --- | --- | | 1. | [Query user](/openapi/usersapi#operation/queryuser) (Optional) | `/v2/users` | Query users using filters such as the company ID, TMC ID, or the user’s email. This is an optional step to obtain the `userId` of the user. **Note:** Querying users using the `companyId` or the `tmcId` will list all users associated with the company or TMC. You’ll need to identify the specific `userId` for which the payment source needs to be mapped. **Response will contain:** `userId` **Other APIs will use:** `userId` | | 1. | [Create personal payment source](/openapi/paymentsapi#operation/createpersonalpaymentsource) | `/v2/payment/users/{userId}/payment-sources` | Create a personal payment source for a user. **Note:** For creating a personal payment source, you must use the `vault.spotnana.com` host URL along with the endpoint. In this step the complete API URL will be `vault.spotnana.com/v2/payment/users/{userId}/payment-sources` **URL path requires:** `userId` from step 1. **Request body requires:** Payment source type, card details, and managed traveler access settings if the `userId` is an arranger. **Response body contains:** `paymentSourceId` **Other APIs will use:** `paymentSourceId` | | 1. | [Get the personal payment source](/openapi/paymentsapi#operation/getpersonalpaymentsource) (Optional) | `/v2/payment/users/{userId}/payment-sources/{paymentSourceId}` | Retrieve the details of a personal payment source. This endpoint can be used to check the status of the payment source. If the status is `INCOMPLETE`, [update the personal payment source](/spotnana/personal_payment_updation) with the missing information. **Note:** The response will never contain the card number. Instead, the `paymentSource` > `card` > `number` field will contain the masked information. **URL path requires:** `userId` from step 1 and `paymentSourceId` from step 2. |