This document describes how Solution Partners can share and revoke lines of credit with onboarded busines customers.
Billing Liability Disclosure
Businesses customers that you onboard through Embedded Signup must be granted access to your line of credit with Meta to pay for WhatsApp Business Platform access. This means that businesses pay you, and you receive an aggregated invoice to pay Meta.
You are the "Bill To Party" for all businesses sharing your credit line. You are liable for and will pay Meta for all WhatsApp Business Platform spend made by these businesses.
You can grant access to your line of credit with the APIs describe in this document. You can revoke access to your line of credit for individual businesses within the Business Manager or with a series of API calls.
Nearly all credit line related endpoints require your system user acess token. In addition, the system user who the token represents must have granted your app the business_management permission, and must have been granted an Admin or Financial Editor role on your business portfolio.
Nearly all API calls related to credit lines require your credit line ID. Use the GET /<BUSINESS_ID>/extendedcredits endpoint to get your business portfolio's credit line ID.
curl 'https://graph.facebook.com/<API_VERSION>/<BUSINESS_PORTFOLIO_ID>/extendedcredits' \ -H 'Authorization: Bearer <SYSTEM_TOKEN>'
Upon success, the API will return the business portfolio's extended credit line ID ("credit line ID").
{ "data": [ { "id": "<EXTENDED_CREDIT_LINE_ID>" } ] }
We are currently testing new steps for sharing your credit line with onboarded business customers. These steps will eventually replace this step, so if you wish to implement these steps now, refer to the Alternate method for sharing your credit line below.
Use the POST /<EXTENDED_CREDIT_LINE_ID>/whatsapp_credit_sharing_and_attach endpoint to share your credit line with an onboarded business customer.
curl -X POST 'https://graph.facebook.com/<API_VERSION>/<EXTENDED_CREDIT_LINE_ID>/whatsapp_credit_sharing_and_attach?waba_currency=<CUSTOMER_BUSINESS_CURRENCY>&waba_id=<CUSTOMER_WABA_ID>' \ -H 'Authorization: Bearer <SYSTEM_TOKEN>'
Placeholder | Description | Example value |
---|---|---|
| Required. The business's currency, as a three-letter currency code. Support values are:
This currency is used for invoicing and corresponds to pricing rates. |
|
| Required. The customer's WABA ID. |
|
| Required. Your extended credit line ID. |
|
| Required. Your system token. |
|
Upon success:
{ "allocation_config_id": "<ALLOCATION_CONFIGURATION_ID>", "waba_id": "<CUSTOMER_WABA_ID>" }
Placeholder | Description | Example value |
---|---|---|
| The extended credit line's allocation configuration ID. Save this ID if you want to verify that your credit line has been shared with the customer. |
|
| The customer's WABA ID. |
|
We are currently testing new steps for sharing your credit line with onboarded business customers. These steps are described below, and will eventually replace the current method for sharing your credit line with an onboarded customer.
Use the GET /<WABA_ID> endpoint and request the owner_business_info
field to get the business customer's business portfolio ID.
curl --get 'https://graph.facebook.com/v21.0/<WABA_ID>?fields=owner_business_info' \ -H 'Authorization: Bearer <BUSINESS_TOKEN>'
Placeholder | Description | Example value |
---|---|---|
| Required. The customer's business token. |
|
| Required. The customer's WABA ID. |
|
Upon success:
{ "owner_business_info": { "name": "<BUSINESS_PORTFOLIO_NAME>", "id": "<BUSINESS_PORTFOLIO_ID>" }, "id": "<WABA_ID>" }
Placeholder | Description | Example value |
---|---|---|
| The customer's business portfolio ID. |
|
| The customer's business portfolio name. |
|
| The customer's WABA ID. |
|
Use the POST /<EXTENDED_CREDIT_ID>/whatsapp_credit_sharing endpoint and your system token to indicate your intent to share your credit line with the customer's business portfolio.
curl -X POST 'https://graph.facebook.com/v21.0/<EXTENDED_CREDIT_LINE_ID>/whatsapp_credit_sharing?receiving_business_id=<BUSINESS_PORTFOLIO_ID>' \ -H 'Authorization: Bearer <SYSTEM_TOKEN>'
Placeholder | Description | Example value |
---|---|---|
| Required. Your extended credit line ID. |
|
| Required. The customer's business portfolio ID. |
|
| Required. You system user access token. |
|
Upon success:
{ "success": true, "allocation_config_id": "<ALLOCATION_CONFIG_ID>" }
Placeholder | Description | Example value |
---|---|---|
| The extended credit line's allocation configuration ID. |
|
Use the POST /<EXTENDED_CREDIT_LINE_ID>/whatsapp_credit_attach endpoint to attach your credit line to the customer's WABA.
curl -X POST 'https://graph.facebook.com/v21.0/<EXTENDED_CREDIT_LINE_ID>/whatsapp_credit_attach?waba_currency=<WABA_CURRENCY>&waba_id=<WABA_ID>' \ -H 'Authorization: Bearer <BUSINESS_TOKEN>'
Placeholder | Description | Example value |
---|---|---|
| Required. The customer's business token. |
|
| Required. Your extended credit line ID. |
|
| Required. The customer's WABA ID. |
|
| Required. The customer's business currency. |
|
Upon success:
{ "success": true, "waba_id": "<WABA_ID>", "allocation_config_id": "<ALLOCATION_CONFIG_ID>" }
Placeholder | Description | Example value |
---|---|---|
| The extended credit line's allocation configuration ID. Save this ID if you want to verify that your credit line has been shared with the customer. |
|
| The customer's WABA ID. |
|
Your credit line should now be shared with the business customer. If you want to verify that it has in fact been shared, see Verifying that your credit line has been shared with a customer.
Refer to our Share access to monthly invoicing Help Center article to learn how to share your credit line with an onboarded business customer using the Business Manager.
Perform the following queries if you want to make sure that your credit line has been shared with an onboarded business customer.
Use the GET /<EXTENDED_CREDIT_ALLOCATION_ID> endpoint to request the receiving_credential
field on your extended credit allocation ID (returned when you shared your credit line with the business customer).
curl 'https://graph.facebook.com/<API_VERSION>/<EXTENDED_CREDIT_ALLOCATION_ID>?fields=receiving_credential' \ -H 'Authorization: Bearer <SYSTEM_TOKEN>'
Upon success:
{ "receiving_credential": { "id": "<RECEIVING_CREDENTIAL_ID>" }, "id": "<ALLOCATION_CONFIGURATION_ID>" }
Use the GET / endpoint to request the primary_funding_id
on the customer's WABA ID.
curl 'https://graph.facebook.com/v21.0/<CUSTOMER_WABA_ID>/?fields=primary_funding_id' \ -H 'Authorization: Bearer <CUSTOMER_BUSINESS_TOKEN>'
Upon success:
{ "primary_funding_id": "<PRIMARY_FUNDING_ID>", "id": "<CUSTOMER_WABA_ID>" }
Compare the receiving credential ID to the primary funding ID. If the values match, your credit line has been shared correctly with the business customer's WABA.
These are the steps needed to remove the shared line of credit if you need to revoke access for any reason. You can revoke your credit line whenever you feel the need to and/or when your client removes you as a partner from their WhatsApp Business Account.
When you revoke a credit line from a customer's account, that revocation applies to all WABAs that belong to the customer's business and have been shared with you, the Solution Partner.
curl -i -X GET "https://graph.facebook.com/v21.0
/{business-id}/
extendedcredits?fields=id,legal_entity_name&
access_token={system-user-access-token}"
Response:
{ "data": [ { "id": "1972385232742146", "legal_entity_name": "Your Legal Entity", } ] }
curl -i -X GET "https://graph.facebook.com/v21.0
/
{whatsapp-business-account-id}?fields=owner_business_info&
access_token={system-user-access-token}"
Response:
{ "owner_business_info": { "name": "Client Business Name", "id": "1972385232742147" }, }If the WhatsApp Business Account was unshared with the Solution Partner or the client business removed the Solution Partner as a partner from the WhatsApp Business Account, you cannot access the client's business ID from the above API call. See Unshared WhatsApp Business Account for information.
curl -i -X GET "https://graph.facebook.com/v21.0
/{extended-credit-id}/
owning_credit_allocation_configs?
receiving_business_id={clients-business-id}&
fields=id,receiving_business&
access_token={system-user-access-token}"
Response:
{ "id": "1972385232742140", // Allocation config (i.e., credit sharing) id "receiving_business": { "name": "Client Business Name" "id": "1972385232742147" }, }
Request:
curl -i -X DELETE "https://graph.facebook.com/v21.0
/
{allocation-config-id}?
access_token={system-user-access-token}"
Response:
{ "success": true, }
Request:
curl -i -X GET "https://graph.facebook.com/v21.0
/
{allocation-config-id}?fields=receiving_business,request_status&
access_token={system-user-access-token}"
Response:
{ "receiving_business": { "name": "Client Business Name" "id": "1972385232742147" }, "request_status": "DELETED" }
If the WhatsApp Business Account was unshared with the Solution Partner or the client business removed the Solution Partner as a partner from the WhatsApp Business Account, you are not able to access the client's business ID from the API call listed in Step 2.
In this case, you can retrieve the client's business ID from the email notification that was sent to the Solution Partner business admins when the client business removed the Solution Partner as a partner from the WhatsApp Business Account.
When the WhatsApp Business Account is unshared, all messaging for that account is blocked to protect the Solution Partner's credit line. For complete security, it is recommended that Solution Partners revoke their credit line as soon as the unshare occurs.