Via API, how do we retrieve recipient (first,last,phone,email) of product/service when the buyer is different?

We sell a digital product that is often bought on behalf of others. In our experience, when this happens the customer directory contains the buyer and not the recipient information. However, in the square portal, a user can navigate to the order details and see the recipient information. So it does exist.

We think this data exists in the fulfillmentreciepent object? If that is true, is there some way to query it? If that is false, is there another option?

This is critical to how we integrate our consumers information back into our CRM system. Which in turn enable us to provide the paid for service to our customers.

Note: we use square’s online service for hosting our product and checkout process. No third party involved unless you consider weeblo 3rd party.

Thank you in advance!

:wave: You are correct that the recipient is in the fulfillment object. Unfortunately there isn’t a way to query for that specific field however you can use SearchOrders to query for orders within a given timeframe and parse the results for the recipient. :slightly_smiling_face:

@Bryan-Square - :wave: and thank you for the response.

Unfortunately the searchorders API will not surface the recipient details if the order was paid for on-behalf of a different customer. If i’m wrong please correct me.

Providing sample output directly from the square API Explorer using a simple post request. You will see that all it returns, with limited use, is payment_id. Which in turn with the payment API, can be used to return the recipients email address. The payment API is void of phone, last, and first name. Data points critical to our integration.

-Will you confirm that i’m parsing the results correctly…and that phone, first, and last name is unattainable?
-If I am correct, will you also confirm that receipient will not integrate into the square customer directory properly?
-Finally, will you provide a date that the API will be available? And a date that the square customer directory will be updated correctly?

Example:
{
“id”: xxxxxxx,
“location_id”: “XXXXXXXXXXXX”,
“line_items”: [
{
“uid”: xxxxxxxx
“catalog_object_id”: xxxxxxx
“catalog_version”: xxxxxxxx
“quantity”: “1”,
“name”: “RV Tech Bridge - Unlimited Support”,
“variation_name”: “Subscription”,
“base_price_money”: {
“amount”: 2999,
“currency”: “USD”
},
“modifiers”: [
{
“uid”: xxxxxxxxxxxx
“base_price_money”: {
“amount”: 0,
“currency”: “USD”
},
“total_price_money”: {
“amount”: 0,
“currency”: “USD”
},
“name”: “RV Make (for example: Grand Design, Jayco, Forest River, etc.): Intech”
},
{
“uid”: xxxxxxxxxxxxx
“base_price_money”: {
“amount”: 0,
“currency”: “USD”
},
“total_price_money”: {
“amount”: 0,
“currency”: “USD”
},
“name”: “RV Model: Sol Horizon”
},
{
“uid”: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
“base_price_money”: {
“amount”: 0,
“currency”: “USD”
},
“total_price_money”: {
“amount”: 0,
“currency”: “USD”
},
“name”: “What year was your RV made? (YYYY): 2020”
}
],
“gross_sales_money”: {
“amount”: 2999,
“currency”: “USD”
},
“total_tax_money”: {
“amount”: 0,
“currency”: “USD”
},
“total_discount_money”: {
“amount”: 0,
“currency”: “USD”
},
“total_money”: {
“amount”: 2999,
“currency”: “USD”
},
“variation_total_price_money”: {
“amount”: 2999,
“currency”: “USD”
},
“item_type”: “ITEM”
}
],
“fulfillments”: [
{
“uid”: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
“type”: “DIGITAL”,
“state”: “PROPOSED”
}
],
“created_at”: “2021-12-27T00:07:10.130Z”,
“updated_at”: “2021-12-27T14:42:06.327Z”,
“state”: “OPEN”,
“version”: 5,
“reference_id”: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
“total_tax_money”: {
“amount”: 0,
“currency”: “USD”
},
“total_discount_money”: {
“amount”: 0,
“currency”: “USD”
},
“total_tip_money”: {
“amount”: 0,
“currency”: “USD”
},
“total_money”: {
“amount”: 2999,
“currency”: “USD”
},
“tenders”: [
{
“id”: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
“location_id”: xxxxxxxxxxxxxxxxxxxx
“transaction_id”: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
“created_at”: “2021-12-27T00:07:10Z”,
“amount_money”: {
“amount”: 2999,
“currency”: “USD”
},
“type”: “CARD”,
“card_details”: {
“status”: “CAPTURED”,
“card”: {
“card_brand”: “VISA”,
“last_4”: xxxxx
“fingerprint”:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
},
“entry_method”: “ON_FILE”
},
“payment_id”: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}
],
“total_service_charge_money”: {
“amount”: 0,
“currency”: “USD”
},
“net_amounts”: {
“total_money”: {
“amount”: 2999,
“currency”: “USD”
},
“tax_money”: {
“amount”: 0,
“currency”: “USD”
},
“discount_money”: {
“amount”: 0,
“currency”: “USD”
},
“tip_money”: {
“amount”: 0,
“currency”: “USD”
},
“service_charge_money”: {
“amount”: 0,
“currency”: “USD”
}
},
“source”: {
“name”: “Square Online”
}
}

Thank you again in advance

Okay, this is a Square Online Store order with a fulfillment “type”: “DIGITAL”. What’s the order_id. Not sure if we return recipients detail for these types of orders so I need to check. :slightly_smiling_face:

@Bryan-Square , really appreciate the prompt response! Thank you!!

Here is the order id as requested:

aOXiQSwrr6R8y7Vvr81fUHbnZXeZY

@Bryan-Square , subsequently …please note a “digital” order works well enough as long as the recipient and buyer are the same person. The customer directory is updated perfectly and the customer_id is available via the output from searchorders API. There is an odd lag. If you query the searchorders API directly after the order is placed, customer_id is absent. For whatever reason you need to wait 1-3 mins before customer_id is available in the results. I’d love to know why =)

So at this time the recipient information isn’t retuned in Square Online Store orders with a fulfillment “type”: “DIGITAL”. We’re constantly working to improve our features based on feedback like this, so I’ll be sure to share your request to the API product team. :slightly_smiling_face:

1 Like

@Bryan-Square , thank you for confirming.

How will I know when/if this becomes available? Can you turn this thread into a feature request? Or something else I can follow?

And can you set some kind of expectation? Am I hosed for the foreseeable future?

Thank you!

Well thank you so much for that info i was traying wrong way.

I updated this to a feature request. If you would like to track releases of new features and functionality with Square APIs please periodically check our Release Notes or subscribe to our Developer Notifications. :slightly_smiling_face:

1 Like

You will see that all it returns, with limited use, is payment_id. Which in turn with the payment API, can be used to return the recipients email address.