No. PayPal REST API returns a success response when it accepts the request. Provely proves capture_completed, capture_recorded, refund_completed and refund_recorded as separate promises.

Skill facts from the signed manifest.
FactValue
Skill version0.1.0
PublisherBuilt and signed by Provely.
CertificationProvisional
Last conformance run2026-09-05T12:00:00Z: 59 of 59 cases passed, 0 critical false VERIFIED
Provider API versionsv2
Default provider API versionv2
Compiled2026-09-05
Manifest hashb569478a510412b0
Manifest hash checkthe document hashes to the value the manifest states
Signaturevalid, key provely-skill-2026-09, trusted by this build

What does this page prove?

ClaimProven byEvidenceStatus
The captured payment reached the status COMPLETED. A 201 Created answer with the status PENDING is an object that exists and not money that moved.paypal.capture.completedE2 + E3proven
The captured payment exists with the intended order, amount, and currency. A 201 Created answer with the status PENDING proves that no money moved.paypal.capture.recordedE2 + E3proven
The refund reached the status COMPLETED. A 201 Created answer with the status PENDING is an object that exists and not money that went back.paypal.refund.completedE2 + E3proven
The refund exists with the intended amount and currency, and an event ties it to the intended captured payment. It proves no money went back.paypal.refund.recordedE2 + E3proven
An outcome outside PayPal REST API, such as a bank credit or a person who read a messagenot provenno E5 channelnot proven
The meaning of a PayPal REST API state that no source statesnot provenno source states itnot proven
The agent report that the action workednever countsE0not proven

Which completion levels does the PayPal REST API skill expose?

Each level is one promise with one contract. An agent picks the level that matches the promise it makes. It cannot upgrade a level. Read the completion level definition.

LevelContractPromiseEvidenceCertification
capture_completedpaypal.capture.completed v1.0.0The captured payment reached the status COMPLETED. A 201 Created answer with the status PENDING is an object that exists and not money that moved.E2 + E3Provisional
capture_recordedpaypal.capture.recorded v1.0.0The captured payment exists with the intended order, amount, and currency. A 201 Created answer with the status PENDING proves that no money moved.E2 + E3Provisional
refund_completedpaypal.refund.completed v1.0.0The refund reached the status COMPLETED. A 201 Created answer with the status PENDING is an object that exists and not money that went back.E2 + E3Provisional
refund_recordedpaypal.refund.recorded v1.0.0The refund exists with the intended amount and currency, and an event ties it to the intended captured payment. It proves no money went back.E2 + E3Provisional

Which ways can a PayPal REST API action look done and not be?

ContractCaseVerdict
paypal.capture.completedduplicate side effectCONTRADICTED
paypal.capture.completedpre existing stateCONTRADICTED
paypal.capture.completedwrong amountCONTRADICTED
paypal.capture.completedwrong subjectCONTRADICTED
paypal.capture.recordedpre existing stateCONTRADICTED
paypal.capture.recordedwrong amountCONTRADICTED
paypal.capture.recordedwrong subjectCONTRADICTED
paypal.refund.completedduplicate side effectCONTRADICTED
paypal.refund.completedpre existing stateCONTRADICTED
paypal.refund.completedwrong amountCONTRADICTED
paypal.refund.recordedduplicate side effectCONTRADICTED
paypal.refund.recordedpre existing stateCONTRADICTED
paypal.refund.recordedwrong amountCONTRADICTED

What did the last conformance run show?

The last conformance run on 2026-09-05T12:00:00Z passed 59 of 59 cases with 0 critical false VERIFIED. One critical false VERIFIED rejects a skill.

The certification of each contract.
ContractCertification
paypal.capture.completedProvisional
paypal.capture.recordedProvisional
paypal.refund.completedProvisional
paypal.refund.recordedProvisional

The weakest contract is paypal.capture.completed. It reaches Provisional. The package level is Provisional, because a package level never rises above its weakest contract. Read the level of the contract you use.

The conformance result by case class.
Case classPassedTotal
duplicate side effect22
error after execution44
error before execution44
evidence unavailable44
idempotent retry44
pre existing state44
stale readback44
still transitional44
terminal failure22
terminal success44
timeout after commit44
version mismatch44
webhook duplicate44
webhook out of order44
wrong amount44
wrong subject22
wrong terminal state11

The conformance artifact digest is 7a1ba0842c927b54. The harness signs the run, so a reader can check that these numbers come from that run.

What remains uncertain?

The level is Provisional because of it. Provely does not guess a rule that a source does not state.

Where do these facts come from?

Every claim above cites a source assertion in the skill provenance. The compiler records the source, its hash, and the retrieval date. A page never states a provider rule without one.

SourceKindRetrievedExcerpt
paypal.docs.capturesdocs2026-09-08authored
paypal.docs.credentialsdocs2026-09-08authored
paypal.docs.idempotencydocs2026-09-08authored
paypal.docs.refundsdocs2026-09-08authored
paypal.docs.sandboxdocs2026-09-08authored
paypal.docs.versionsdocs2026-09-08authored
paypal.docs.webhooksdocs2026-09-08authored
paypal.eventsevent sample2026-09-08authored
paypal.orders.openapiopenapi2026-09-08trimmed
paypal.payments.openapiopenapi2026-09-08trimmed

How do I verify a PayPal REST API action?

Verify a PayPal REST API action with Provely

  1. Begin the operation.Call begin with the contract paypal.capture.completed and the input. Keep the operation id and the idempotency key.
  2. Make the PayPal REST API call you make today.Send the PayPal-Request-Id header with the key that begin returned. A retry then cannot create a second side effect.
  3. Submit the acknowledgement.Call action_result with the PayPal REST API response. This is evidence level E1. It is not completion.
  4. Verify.Call verify. The runtime reads the evidence that the contract names, from PayPal REST API and not from the agent, and evaluates the contract.
  5. Report the verdict exactly as returned.VERIFIED comes with a signed receipt. PENDING comes with the operation id. CONTRADICTED and UNVERIFIABLE are not success.

Questions developers ask

Does the capture_completed level prove the refund_recorded level?

No. The captured payment reached the status COMPLETED. A 201 Created answer with the status PENDING is an object that exists and not money that moved. The refund exists with the intended amount and currency, and an event ties it to the intended captured payment. It proves no money went back. Use paypal.refund.recorded to prove refund_recorded.

What does the agent say while the PayPal REST API action is still in progress?

It says: "The action is accepted but not yet verified. Operation: <id>." The verdict is PENDING. The runtime observes again on the contract timing policy.

Which PayPal REST API API versions does the skill support?

v2. An operation on another version returns UNVERIFIABLE with the reason version_unsupported. The runtime never guesses.

Does Provely need write access to PayPal REST API?

No. The agent keeps its write key. The verifier reads with a separate read-only credential where PayPal REST API permits it, and it never shares that credential with the agent.