# Processor Steps
source: https://developer.mastercard.com/open-finance-us/documentation/participant-model/partner-linked/processor/processor-steps/index.md

This page is intended for processors who want to know how to access Open Finance APIs (for example, to access ACH routing data) for customers who have consented to share their data for this purpose.

## Before you Start {#before-you-start}

To ensure you understand the process, we recommend reading The Consent Receipt page first.

You will be sent this consent receipt data by the recipient (a client application which uses Mastercard Open Finance services) so that the application can grant permission for you as as receiver to access Open Finance products on their behalf - for example, so that you can obtain ACH routing data in order to process a payment.

We recommend you implement a secure API in order that the requestor can send you the consent receipt after you have established a business relationship and agreed the access required.

You will also need to be onboarded to the Mastercard Open Finance system in the normal way so you can make the API calls necessary.

## Processor Access Consented Data {#processor-access-consented-data}

The consent receipt information the client shared with you makes it possible for you to start making your own calls using our APIs to retrieve authorized data from our platform.
Note: You will only have access to those API products which the consent receipt grants permission for.

The consent receipt `products` array will contain details of which products you have been granted access to. The `product` value of each array element

|               `product` value                |                                                                 Product name                                                                  |                                       Description                                        |
|----------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------|
| `accountOwner`                               | [Account Owner Verification](https://developer.mastercard.com/open-finance-us/documentation/products/pay/verification-account-owner/index.md) | The names and addresses of an account owner from a financial institution.                |
| `availableBalance` or `availableBalanceLive` | [Get Available Balance](https://developer.mastercard.com/open-finance-us/documentation/products/pay/account-balance/index.md)                 | The latest available and cleared account balances for an account.                        |
| `moneyTransferDetails`                       | [Get Account ACH Details](https://developer.mastercard.com/open-finance-us/documentation/products/pay/verification-money-transfer/index.md)   | The real account number and routing number details for an ACH payment.                   |
| `paymentIndicator`                           | [PSI Tools](https://developer.mastercard.com/open-finance-us/documentation/products/pay/psi-tools/index.md)                                   | Get the Payment Success Indicator response, scoring the likelihood of payment settlement |

The following steps are the example of how to access the client's account owner and available balance information for their customer's accounts.

## Authenticate your partner ID to Create an Access Token {#authenticate-your-partner-id-to-create-an-access-token}

You have completed the Partner Linked Integration steps working with a client and have agreed to the following:

1. The client wants you to process payments for their customer's accounts.
2. You need information from the Get Account Owner and Get Available Balance APIs on our platform in order to process the payments.
3. Both parties are clear about who is billed for API access.

## Use Get Account Owner {#use-get-account-owner}

From the consent receipt information that the client shared with you, use the reciptId as the Fincity-Access-Key parameter in the header of all requests you make to our API platform.
These values are used to authenticate and authorize access to the data you're requesting on our platform.
From the consent receipt, use the pseudo customerId and the pseudo accountId in the Get Account Owner URL endpoint.

API Reference: `GET /aggregation/v1/customers/{customerId}/accounts/{accountId}/owner`

The Account Owner V1 response returns the real ownerName and the ownerAddress information associated with the pseudo customerId and pseudo accountId passed in the URL endpoint.

```json
{
  "ownerName": "John Smith",
  "ownerAddress": "APT C 5600 S SPRINGFIELD GARDENS CIR SPRINGFIELD, VA 22162-1058"
}
```

## Use Get Account Balance {#use-get-account-balance}

Use the same header values shown for the Get Account Owner request. Pass the pseudo identifiers for the customerId and accountId in the URL endpoint.

API Reference: `GET /aggregation/v1/customers/{customerId}/accounts/{accountId}/availableBalance/live`

    curl -X GET \  --url 'https://api.finicity.com/aggregation/v1/customers/{pseudo customerId}/accounts/{pseudo accountId}/availableBalance/live \
     -H 'Finicity-App-Token: Finicity-App-Token'\
      -H 'Finicity-App-Key: Finicity-App-Key'\
      -H 'Finicity-Access-Key: cr_192038u123ohjsdfkh18324234sdf11231\
      -H 'Accept: application/json'

The Get Available Balance Response returns customer and account information:

```json
{
  "id": 5047759451,
  "realAccountNumberLast4": "2222",
  "availableBalance": 228.33,
  "availableBalanceDate": 1646076805,
  "cleared Balance": 228.33,
  "clearedBalanceDate": 1646076805,
  "aggregationStatusCode": 0,
  "currency": "USD"
}
```

## Use Get Account ACH (money transfer) Details {#use-get-account-ach-money-transfer-details}

Use the same header values as shown for the Get Account Owner request. Pass the pseudo identifiers for the customerId and accountId in the URL endpoint.

API Reference: `GET /aggregation/v1/customers/{customerId}/accounts/{accountId}/details`

    curl -X GET \  --url 'https://api.finicity.com/aggregation/v1/customers/{pseudo customerId}/accounts/{pseudo accountId}/availableBalance \
     -H 'Finicity-App-Token: Finicity-App-Token'\
      -H 'Finicity-App-Key: Finicity-App-Key'\
      -H 'Finicity-Access-Key: cr_192038u123ohjsdfkh18324234sdf11231\
      -H 'Accept: application/json'

The Get Account ACH Response returns the customer's routing number and account number:

```json
{
  "routingNumber": "123456789",
  "realAccountNumber": "002345678901"
}
```

The processor is responsible for sharing their data sets with the client as needed per their agreement.

Normally this would be via an API which the client calls in order to initiate the activity.
