{"success":true,"count":34,"contracts":[{"service":"CDEK","method":"POST","path":"/v2/oauth/token","status":"implemented","purpose":"OAuth 2.0 client credentials token for CDEK API v2.","requiredFields":["grant_type","client_id","client_secret"],"responseStyle":"CDEK OAuth JSON: access_token, token_type, expires_in"},{"service":"CDEK","method":"GET","path":"/v2/deliverypoints","status":"implemented","purpose":"Pickup points and offices used by delivery point map/list.","responseStyle":"CDEK API v2 array with code, type, work_time, location"},{"service":"CDEK","method":"GET","path":"/v2/location/cities","status":"implemented","purpose":"City lookup for adapters that resolve CDEK city_code before tariff calculation.","responseStyle":"CDEK API v2 array with code, city, region, country_code"},{"service":"CDEK","method":"GET","path":"/v2/location/regions","status":"implemented","purpose":"Region lookup for adapters that preload location dictionaries.","responseStyle":"CDEK API v2 array with country_code, region, region_code"},{"service":"CDEK","method":"POST","path":"/v2/calculator/tariff","status":"implemented","purpose":"Single tariff calculation for checkout delivery options.","requiredFields":["tariff_code","from_location","to_location","packages"],"responseStyle":"CDEK API v2 tariff JSON with tariff_code, delivery_sum, period_min, period_max"},{"service":"CDEK","method":"POST","path":"/v2/calculator/tarifflist","status":"implemented","purpose":"Multiple tariff calculation for adapters that ask CDEK for available tariffs.","requiredFields":["from_location","to_location","packages"],"responseStyle":"CDEK API v2 tarifflist JSON with tariff_codes array"},{"service":"CDEK","method":"POST","path":"/v2/orders","status":"implemented","purpose":"Create CDEK delivery order after MyWoolbridge order placement.","requiredFields":["number","tariff_code","recipient","from_location","to_location","packages"],"responseStyle":"CDEK API v2 async response: entity.uuid and requests[]"},{"service":"CDEK","method":"GET","path":"/v2/orders/{uuid}","status":"implemented","purpose":"Read CDEK order state by uuid.","responseStyle":"CDEK API v2 entity object with statuses[]"},{"service":"CDEK","method":"DELETE","path":"/v2/orders/{uuid}","status":"implemented","purpose":"Delete or invalidate CDEK order.","responseStyle":"CDEK API v2 async response: entity.uuid and requests[]"},{"service":"RUPOST","method":"POST","path":"/1.0/clean/address","status":"implemented","purpose":"Russian Post address normalization before tariff and order creation.","responseStyle":"Russian Post array with hyphen-case normalized address fields"},{"service":"RUPOST","method":"POST","path":"/1.0/tariff","status":"implemented","purpose":"Russian Post tariff calculation for checkout delivery options.","responseStyle":"Russian Post hyphen-case tariff JSON with total-rate and delivery-time"},{"service":"RUPOST","method":"GET","path":"/1.0/user/shipping-points","status":"implemented","purpose":"User shipping points used as sender offices.","responseStyle":"Russian Post array with operator-postcode and shipping-point"},{"service":"RUPOST","method":"GET","path":"/1.0/postoffice","status":"implemented","purpose":"Post office lookup by index/address for pickup or sender office selection.","responseStyle":"Russian Post array with postal-code, address-str, latitude, longitude"},{"service":"RUPOST","method":"PUT","path":"/1.0/user/backlog","status":"implemented","purpose":"Create Russian Post backlog orders.","responseStyle":"Russian Post hyphen-case JSON with result-ids"},{"service":"RUPOST","method":"GET","path":"/1.0/backlog","status":"implemented","purpose":"List local Russian Post backlog orders for adapters that poll order state collections.","responseStyle":"Russian Post hyphen-case order array"},{"service":"RUPOST","method":"GET","path":"/1.0/backlog/{id}","status":"implemented","purpose":"Read Russian Post backlog order by id.","responseStyle":"Russian Post hyphen-case order JSON"},{"service":"RUPOST","method":"DELETE","path":"/1.0/backlog","status":"implemented","purpose":"Delete Russian Post backlog orders.","responseStyle":"Russian Post JSON result marker"},{"service":"TBANK","method":"POST","path":"/v2/Init","status":"implemented","purpose":"Initialize payment and return PaymentURL.","requiredFields":["TerminalKey","Amount","OrderId"],"responseStyle":"T-Bank PascalCase JSON: Success, ErrorCode, PaymentId, PaymentURL"},{"service":"TBANK","method":"POST","path":"/v2/GetState","status":"implemented","purpose":"Read payment state by PaymentId.","requiredFields":["PaymentId"],"responseStyle":"T-Bank PascalCase JSON with Status"},{"service":"TBANK","method":"POST","path":"/v2/CheckOrder","status":"implemented","purpose":"Read payments for merchant OrderId.","requiredFields":["OrderId"],"responseStyle":"T-Bank PascalCase JSON with Payments[]"},{"service":"TBANK","method":"POST","path":"/v2/Cancel","status":"implemented","purpose":"Cancel or refund payment in local lifecycle.","requiredFields":["PaymentId"],"responseStyle":"T-Bank PascalCase JSON with Status CANCELED"},{"service":"TBANK","method":"POST","path":"/v2/Confirm","status":"implemented","purpose":"Confirm two-stage payment.","requiredFields":["PaymentId"],"responseStyle":"T-Bank PascalCase JSON with Status CONFIRMED"},{"service":"TBANK","method":"POST","path":"/v2/FinishAuthorize","status":"implemented","purpose":"Move payment to AUTHORIZED for payment-form test scenarios.","requiredFields":["PaymentId"],"responseStyle":"T-Bank PascalCase JSON with Status AUTHORIZED"},{"service":"TBANK","method":"GET","path":"/v2/TinkoffPay/terminals/{TerminalKey}/status","status":"implemented","purpose":"T-Pay capability endpoint for clients that check terminal support.","responseStyle":"T-Bank JSON for T-Pay terminal availability"},{"service":"CLICKUP","method":"POST","path":"/api/v2/list/{list_id}/task","status":"implemented","purpose":"Create a ClickUp task/card in a List.","requiredFields":["name"],"responseStyle":"ClickUp API v2 task object"},{"service":"CLICKUP","method":"GET","path":"/api/v2/list/{list_id}/task","status":"implemented","purpose":"List tasks/cards in a ClickUp List.","responseStyle":"ClickUp API v2 JSON with tasks[]"},{"service":"CLICKUP","method":"GET","path":"/api/v2/task/{task_id}","status":"implemented","purpose":"Get a ClickUp task/card by task id.","responseStyle":"ClickUp API v2 task object"},{"service":"CLICKUP","method":"PUT","path":"/api/v2/task/{task_id}","status":"implemented","purpose":"Update a ClickUp task/card.","responseStyle":"ClickUp API v2 task object"},{"service":"CLICKUP","method":"DELETE","path":"/api/v2/task/{task_id}","status":"implemented","purpose":"Delete a ClickUp task/card.","responseStyle":"ClickUp API v2 empty 204 response"},{"service":"DOLYAMI","method":"POST","path":"/v1/orders/create","status":"implemented","purpose":"Create a direct Dolyami API application and payment link.","requiredFields":["order.id","order.amount","order.items"],"responseStyle":"Dolyami direct API order: id, status, link"},{"service":"DOLYAMI","method":"GET","path":"/v1/orders/{id}/info","status":"implemented","purpose":"Read current Dolyami application status.","responseStyle":"Dolyami order info with status, amount, residual_amount and optional payment_schedule/refund_info"},{"service":"DOLYAMI","method":"POST","path":"/v1/orders/{id}/commit","status":"implemented","purpose":"Confirm a Dolyami order after wait_for_commit.","responseStyle":"Dolyami committed order object"},{"service":"DOLYAMI","method":"POST","path":"/v1/orders/{id}/refund","status":"implemented","purpose":"Refund all or part of a committed Dolyami order.","responseStyle":"Dolyami refund response with refund_id and order state"},{"service":"DOLYAMI","method":"POST","path":"/v1/orders/{id}/cancel","status":"implemented","purpose":"Cancel a Dolyami order in wait_for_commit.","responseStyle":"Dolyami canceled order object"}],"services":{"CDEK":9,"RUPOST":8,"TBANK":7,"CLICKUP":5,"DOLYAMI":5}}