# Tutorials and Guides
source: https://developer.mastercard.com/business-payment-controls/documentation/tutorial-guides/index.md

## Tutorials {#tutorials}

#### Configure Business Payment Controls endpoints using Postman {#configure-business-payment-controls-endpoints-using-postman}

This tutorial walks through the steps required to configure endpoints using Postman.

[View tutorial](https://developer.mastercard.com/business-payment-controls/tutorial/example_tutorial/index.md)

#### Business Payment Controls reference application {#business-payment-controls-reference-application}

This tutorial explains how to use the Business Payment Controls API in a Java environment.

[View tutorial](https://developer.mastercard.com/business-payment-controls/documentation/reference-app/index.md)

#### Create and configure a sandbox project {#create-and-configure-a-sandbox-project}

This tutorial walks through the steps required to access a sandbox environment.

[View tutorial](https://developer.mastercard.com/business-payment-controls/documentation/tutorial/tutorial-1/index.md)

#### Configure an API client {#configure-an-api-client}

This tutorial walks through the steps required to configure an API client.

[View tutorial](https://developer.mastercard.com/business-payment-controls/documentation/tutorial/tutorial-2/index.md)

#### Access API using OAuth {#access-api-using-oauth}

Learn about OAuth 1.0a and how to access Mastercard APIs.

[View tutorial](https://developer.mastercard.com/platform/documentation/security-and-authentication/using-oauth-1a-to-access-mastercard-apis/)

#### Move your project to production {#move-your-project-to-production}

Learn how to move your Business Payment Controls sandbox project to production.

[View tutorial](https://developer.mastercard.com/business-payment-controls/documentation/tutorial/tutorial-3/index.md)

## Guides {#guides}

### Quick Start {#quick-start}

Getting started on Mastercard Developers is easy. You need an account, then you can begin accessing documentation, and creating projects. We have provided a [quick start guide](https://developer.mastercard.com/platform/documentation/getting-started-with-mastercard-apis/quick-start-guide/) for you to follow. While following the guide, select Business Payment Controls when creating your project.

### Generating a Mastercard API Client {#generating-a-mastercard-api-client}

You can use open source tools, such as the [OpenAPI Generator](https://openapi-generator.tech), in conjunction with the provided [API Reference](https://developer.mastercard.com/business-payment-controls/documentation/api-reference/index.md), to generate an API client. When used with the provided [client authentication libraries](https://developer.mastercard.com/platform/documentation/security-and-authentication/using-oauth-1a-to-access-mastercard-apis/), and if applicable, [client encryption libraries](https://developer.mastercard.com/platform/documentation/security-and-authentication/securing-sensitive-data-using-payload-encryption/#client-libraries), this is an agile and powerful way to get started with real code to access the service.

### Payload Encryption {#payload-encryption}

Payload Encryption is now available in all environments. For background information on how encryption works refer to [Securing Sensitive Data Using Payload Encryption](https://developer.mastercard.com/platform/documentation/authentication/securing-sensitive-data-using-payload-encryption/). Details of how to set-up the encryption keys are available at [Getting Keys for Your Application](https://developer.mastercard.com/platform/documentation/authentication/securing-sensitive-data-using-payload-encryption/#getting-keys-for-your-application). If you would like to test encryption, please create a new project on Mastercard developers for this purpose.

Additionally, Mastercard has a number of client libraries available for [encryption and decryption](https://github.com/Mastercard?q=client-encryption).

For more information on encryption in Business Payment Controls refer to Payload Encryption in our [FAQs](https://developer.mastercard.com/business-payment-controls/documentation/support/index.md#payload-encryption).

### Idempotency {#idempotency}

Idempotency is the property of an operation that can be applied multiple times without changing the result beyond its first application. It ensures that the BPC users obtain the same consistent outcome when repeating an operation multiple times.  

Idempotency is available for all endpoints. In order to avail of idempotency, a valid [v4 UUID](https://www.rfc-editor.org/rfc/rfc9562.html#uuidv4) should be included in the request header named `Idempotency-Key`.

An `Idempotency-Key` is not required to be provided, and all requests will continue to work as normal without this header, but will not be treated as idempotent.
Note: If an `Idempotency-Key` is provided, Business Payment Controls will consider that any other request to the same endpoint, with the same `Idempotency-Key` specified within a timeframe of 30 seconds constitutes a duplicate request, and the same response will be provided in this instance.

For more information about Idempotency, see the [FAQ](https://developer.mastercard.com/business-payment-controls/documentation/support/index.md#idempotency) section.
