---
title: Configuring request policy contract fulfillment
description: You can fulfill the request policy contract in PingFederate.
component: pingfederate
version: 13.1
page_id: pingfederate:administrators_reference_guide:help_cibapolicymanagementtasklet_cibapolicycontractfulfillmentstate
canonical_url: https://docs.pingidentity.com/pingfederate/13.1/administrators_reference_guide/help_cibapolicymanagementtasklet_cibapolicycontractfulfillmentstate.html
llms_txt: https://docs.pingidentity.com/pingfederate/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
revdate: July 5, 2022
section_ids:
  about-this-task: About this task
  steps: Steps
---

# Configuring request policy contract fulfillment

You can fulfill the request policy contract in PingFederate.

## About this task

On the **Contract Fulfillment** tab, fulfill the request policy contract with values from the original identity hint, datastores, dynamic text values, or attribute mapping expressions (if enabled).

This contract is used to map into the OAuth grant (the `USER_KEY` attribute), the Client Initiated Back channel Authentication (CIBA) authenticator (attributes vary depending on the authenticator), and the user code Password Credential Validator (PCV) (the `USER_CODE_USER_NAME` attribute). The `USER_CODE_USER_NAME` attribute is shown only if a PCV instance is selected on the **Manage Policy** window.

## Steps

1. Select a source from the **Source** list.

   For more information about the **Source** list, see the following table.

   | Source                                                   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   | Context                                                  | Select **Context** to return specific information from the request.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   | JDBC, LDAP, or other types of datastores (if configured) | Select an attribute source when PingFederate should retrieve attribute value from a datastore.When you make this selection, the list under **Value** is populated with attributes from your database, directory, or other datastore.Applicable only if you have added at least one attribute source on the **Attribute Sources & User Lookup** window. For more information, see [Configuring attribute sources and user lookup for request policy contract](help_cibapolicymanagementtasklet_cibapolicyattributesourcesstate.html).                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | Request                                                  | Select **Request** to use the attribute value PingFederate found in the CIBA request without customization.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | Expression (if enabled)                                  | Supports complex mapping requirements, such as transforming incoming values into different formats. Additionally, the HTTP request is retrieved as a Java object rather than text. Therefore, select **Expression** as the source and use OGNL expressions to evaluate and return specific information from the HTTP request.Applicable only if you have enabled the use of expressions in PingFederate. For more information, see [Attribute mapping expressions](pf_attribute_mapping_expressions.html).                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | No Mapping                                               | Select **No Mapping** to ignore the **Value** field, making value selection unnecessary.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | Text                                                     | Select **Text** to return the value you entered under **Value**.You might use a static text value if the target web application provides a service based on the name of your organization. You can provide the attribute value as a constant.You can mix text with references to attributes from the identity provider (IdP) adapter contract by using the `${<attribute>}` syntax.You can also enter references to attributes from configured attribute sources by using the `${ds.<attr-source-id>.<attribute>}` syntax, where `<attr-source-id>` is the **Attribute Source ID** value you entered on the **Attribute Sources & User Lookup > Data Store** tab and `<attribute>` is an attribute from datastore.&#xA;&#xA;You can reference attribute values in the form of ${attributeName:-defaultValue}. The default value is optional. When specified, it is used at runtime if the attribute value is not available. Do not use ${ and } in the default value. |

2. Specify a value associated with the selected source.

3. Repeat these steps until all attributes are configured.

4. Click **Next**.
