---
title: Configuring contract fulfillment for adapter-to-adapter mappings
description: Use one of the listed sources to map each attribute to fulfill the adapter contract.
component: pingfederate
version: 13.1
page_id: pingfederate:administrators_reference_guide:pf_configuring_contract_fulfillment_adaptertoadapter_mappings
canonical_url: https://docs.pingidentity.com/pingfederate/13.1/administrators_reference_guide/pf_configuring_contract_fulfillment_adaptertoadapter_mappings.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 8, 2024
section_ids:
  about-this-task: About this task
  steps: Steps
---

# Configuring contract fulfillment for adapter-to-adapter mappings

Use one of the listed sources to map each attribute to fulfill the adapter contract.

## About this task

The next step in this configuration is to map values from the identity provider (IdP) adapter into the attributes required by the service provider (SP) adapter (the adapter contract).

On the **Adapter Contract Fulfillment** tab, map each attribute to fulfill the adapter contract from one of these sources:

* Adapter

  When you make this selection, the associated **Value** drop-down list is populated by the IdP adapter.

* Context

  Values are returned from the context of the transaction at runtime.

  |   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  |   | The HTTP Request selection is retrieved as a Java object rather than text. For this reason, OGNL expressions are more appropriate to evaluate and return values.Choose **Expression** and then click **Edit** to enter an expression (see [Using the OGNL edit window](pf_using_ognl_edit_window.html)). If the **Expression** selection is not listed, then the feature is not enabled (see [Enabling and disabling expressions](pf_enable_disable_express.html)). For syntax and examples, see sections under [Construct OGNL expressions](pf_construct_ognl_express.html). |

* LDAP/JDBC/Other (when a datastore is used)

  Values are returned from your datastore, if used. When you make this selection, the **Value** list is populated by the attributes from the datastore.

* Expression (when enabled)

  This option provides more complex mapping capabilities—for example, transforming incoming values into different formats (see [Attribute mapping expressions](pf_attribute_mapping_expressions.html)). All of the variables available below for text entries are also available for expressions.

* No mapping

  Select this option to ignore the **Value** field, making the value selection unnecessary.

* Text

  The value is what you enter. This can be text only, or you can mix text with references to any of the values from the IdP adapter, using the `${attribute}` syntax.

  The value is what you enter. This can be text only, or you can mix text with references to any of the values from the IdP adapter, using the `${attribute}` syntax.

  You can also enter values from your datastore, when applicable, using the following syntax.

  ```shell
  ${ds.attr-source-id.attribute}
  ```

  where `attr-source-id `is the **Attribute Source ID** value (see [Choosing a datastore](pf_choosing_datastore.html)) and attribute is any of the datastore attributes you select.

## Steps

1. Select a source of the attribute under **Source** for each SP adapter contract attribute.

2. Specify an attribute under **Value** for each attribute.
