Limits Resolutions Integration Guide
Last updated: Sept 23rd, 10:06pm
The Limits Resolutions API is a PayPal limited release REST API that you can use in conjunction with other publicly available external APIs.
Overview
Use the Limits Resolutions API to list the tasks that a user must complete to verify his or her identity so that PayPal can remove account limitations. Certain factors, such as risk or compliance regulatory checks, can limit a user account or privileges. For example, a user might be restricted to sending only $500 USD or less, pending identity verification. You can also use this API to show details for a task by ID, upload and verify identity documents, and evaluate a task based on data provided for the task.
Identity verification methods include:
-
Data verification. Clients must supply information such as name, address, date of birth, and, optionally, social security number information. The API checks the regulatory databases and vendors to verify the information.
-
Document verification. The client must supply profile information such as name, address, and date of birth information. The client must also supply a document that contains the information that matches the profile information. The API checks the authenticity of the document and matches the profile data to the data that is extracted from the document. If the data matches, the verification succeeds. Otherwise, the verification fails.
Integration steps
To use the Limits Resolutions REST API, complete these integration steps:
| 1. | Required | Set up your development environment. |
| 2. | Required | List identity verification tasks. |
| 3. | Optional | Show task details. |
| 4. | Required | Upload and verify identity documents. |
| 5. | Optional | Evaluate a task. |
Set up your development environment
Before you can integrate Limits Resolutions, you must set up your development environment. After you get a token that lets you access protected REST API resources, you create sandbox accounts to test your web and mobile apps. For details, see Get started.
Then, return to this page to integrate Limits Resolutions.
List identity verification tasks
To list all tasks that a user must complete to verify his or her identity, call GET v1/identity/limits-resolutions/. You can optionally specify query parameters to filter the tasks in the response.
The following example call requests that two pages with five tasks on each page be returned in the response:
1curl -v -X GET https://api-m.sandbox.paypal.com/v1/identity/limits-resolutions?total_required=true&page=2&page_size=5 \2 -H "Content-Type: application/json" \3 -H "Authorization: Bearer <Access-Token>"
Based on the security context details, the response lists the relevant tasks:
1{2 "tasks": [3 {4 "task_id": "188055",5 "task_name": "PIN number for business address verification",6 "evidence_type": "Business Address PIN",7 "task_status": "ACTIVE",8 "links": [9 {10 "href": "https://api-m.paypal.com/v1/identity/limits-resolutions/188055",11 "rel": "self",12 "method": "GET"13 },14 {15 "href": "https://api-m.paypal.com/v1/identity/limits-resolutions/upload-document",16 "rel": "upload",17 "method": "POST"18 }]19 },20 {21 "task_id": "188033",22 "task_name": "Fax Proof of Business Registrations",23 "evidence_type": "Business Registrations",24 "task_status": "ACTIVE",25 "links": [26 {27 "href": "https://api-m.paypal.com/v1/identity/limits-resolutions/188033",28 "rel": "self",29 "method": "GET"30 },31 {32 "href": "https://api-m.paypal.com/v1/identity/limits-resolutions/upload-document",33 "rel": "upload",34 "method": "POST"35 }]36 },37 {38 "task_id": "188039",39 "task_name": "Complete Name Change",40 "evidence_type": "Change Name",41 "task_status": "ACTIVE",42 "links": [43 {44 "href": "https://api-m.paypal.com/v1/identity/limits-resolutions/188039",45 "rel": "self",46 "method": "GET"47 },48 {49 "href": "https://api-m.paypal.com/v1/identity/limits-resolutions/upload-document",50 "rel": "upload",51 "method": "POST"52 }]53 },54 {55 "task_id": "188041",56 "task_name": "Provide Proof Of Business Existence",57 "evidence_type": "Proof Of Business Existence",58 "task_status": "ACTIVE",59 "links": [60 {61 "href": "https://api-m.paypal.com/v1/identity/limits-resolutions/188041",62 "rel": "self",63 "method": "GET"64 },65 {66 "href": "https://api-m.paypal.com/v1/identity/limits-resolutions/upload-document",67 "rel": "upload",68 "method": "POST"69 }]70 },71 {72 "task_id": "188046",73 "task_name": "Provide Details for PEP Questions",74 "evidence_type": "PEP Questions",75 "task_status": "ACTIVE",76 "links": [77 {78 "href": "https://api-m.paypal.com/v1/identity/limits-resolutions/188046",79 "rel": "self",80 "method": "GET"81 },82 {83 "href": "https://api-m.paypal.com/v1/identity/limits-resolutions/upload-document",84 "rel": "upload",85 "method": "POST"86 }]87 }],88 "total_items": 38,89 "total_pages": 8,90 "links": [91 {92 "href": "https://api-m.paypal.com/v1/identity/limits-resolutions?page=2&size=5&customer_type=PAYPAL&total_required=true",93 "rel": "self",94 "method": "GET"95 },96 {97 "href": "https://api-m.paypal.com/v1/identity/limits-resolutions?page=1&size=5&customer_type=PAYPAL&total_required=true",98 "rel": "first",99 "method": "GET"100 },101 {102 "href": "https://api-m.paypal.com/v1/identity/limits-resolutions?page=3&size=5&customer_type=PAYPAL&total_required=true",103 "rel": "next",104 "method": "GET"105 },106 {107 "href": "https://api-m.paypal.com/v1/identity/limits-resolutions?page=1&size=5&customer_type=PAYPAL&total_required=true",108 "rel": "prev",109 "method": "GET"110 },111 {112 "href": "https://api-m.paypal.com/v1/identity/limits-resolutions?page=8&size=5&customer_type=PAYPAL&total_required=true",113 "rel": "last",114 "method": "GET"115 }]116}
For details about the response fields, see list identity verification tasks.
Next, you can show details for a task.
Show task details
The show task details call returns task information including which identity document is required and the current state of the identity verification task. If the required document is an identity document and document verification is required, the call returns the verification results.
To show details for a task, call GET v1/identity/limits-resolutions/<task_id>, where task_id is the ID of the task for which you want to show details:
1curl -v -X GET https://api-m.sandbox.paypal.com/v1/identity/limits-resolutions/52502 \2 -H "Content-Type: application/json" \3 -H "Authorization: Bearer <Access-Token>"
Based on the security context details, the call shows the account details and provides HATEOAS links that enable you to complete actions against the task. In this case, you can make a POST call to upload a document for this task.
1{2 "task_id": "52502",3 "appeal_step_id": "52",4 "task_name": "Fax Photo ID",5 "evidence_type": "Photo ID",6 "task_status": "ACTIVE",7 "links": [8 {9 "href": "https://api-m.paypal.com/v1/risk/limits-resolutions/52502",10 "rel": "self",11 "method": "GET"12 },13 {14 "href": "https://api-m.paypal.com/v1/risk/limits-resolutions/upload-document",15 "rel": "update",16 "method": "POST"17 }]18}
For details about the response fields, see show task details.
Next, you can upload and verify identity documents.
Upload and verify identity documents
The upload and verify identity documents call accepts the Multipart/Related content-type.
In the JSON request body, specify both the document as a binary and metadata:
1curl -v -X POST https://api-m.sandbox.paypal.com/v1/identity/limits-resolutions/upload-document \2 -H "Content-Type: application/json" \3 -H "Authorization: Bearer <Access-Token>" \4 -d '{5 "content-type": "application/json",6 "document_info": {7 "customer_details": {8 "entity_type": "PERSON",9 "entity_id": "1961732574982598367"10 },11 "verification_intent": "VERIFY_DOCUMENT",12 "case_id": "132045",13 "party_id": "1961732574982598367",14 "document_description": "Utility Bill",15 "evidence_type": "Photo ID"16 }17}'
Before the Limits Resolutions API uploads the file, it runs a malware scan to ensure that the file is not malware.
The response shows the task name and status and provides HATEOAS links that enable you to complete actions against the task. In this case, you can make a GET request to show details for the task:
1{2 "task_id": "52502",3 "task_name": "Fax Photo ID",4 "evidence_type": "Photo ID",5 "task_status": "ACTIVE",6 "links": [7 {8 "href": "https://api-m.paypal.com/v1/identity/limits-resolutions/52502",9 "rel": "self",10 "method": "GET"11 }]12}
Next, evaluate a task based on data provided for the task.
Evaluate a task
The evaluate a task call returns task details, such as notes, to help you further evaluate the task. Also, you can call evaluate a task to list the tasks for a verification intent, such as a name change. The verification intent value is VERIFY_TASK, VERIFY_DOCUMENT, or CHANGE_NAME.
Note: Some tasks, like a text_note task, do not require that you upload any files.
Specify either a task ID or case ID in the JSON request body.
This sample request evaluates a text_note task, and so does not require that you upload any documents. The verification intent is VERIFY_TASK for the task with the 52406 task ID:
1curl -v -X POST https://api-m.sandbox.paypal.com/v1/identity/limits-resolutions \2 -H "Content-Type: application/json" \3 -H "Authorization: Bearer <Access-Token>" \4 -d '{5 "customer_details": {6 "entity_type": "PERSON",7 "entity_id": "1501214755754775272",8 "entity_address": {9 "street_number": "1233",10 "street_name": "W Middlefield",11 "street_type": "Rd",12 "locality": "Mountain View",13 "province": "CA",14 "country_code": "US"15 }16 },17 "verification_intent": "VERIFY_TASK",18 "limit_resolution_tasks": [19 {20 "task_id": "52406",21 "appeal_step_id": "52",22 "text_note": "Adding Another Note for Photo ID",23 "evidence_type": "Photo ID",24 "task_name": "Fax Photo ID"25 }]26}'
The response shows the results of the task evaluation:
1{2 "decision": "APPROVED"3}
Additional information
- Limits Resolutions API reference
- PayPal REST SDKs for information about the reference implementations for the Node, Python, Java, Ruby, .NET, and PHP languages